со следующим:
awk '
BEGIN {XX="";
print "Subject:...\nFrom:... <test@gmail.com>\nTo:test@gmail.com"
} {
if($2>20) {
XX=$1;
exit(0)
}
}
END {
if(XX!="")printf("%s is over 21 attemps\015\n",XX)
}' file.tmp > >(/usr/lib/sendmail -t test@gmail.com)
Раздел BEGIN
записывает заголовок письма и инициализирует переменную XX (пусто).
if($2>20)
перехватывает требуемое условие и, если оно истинно, изменяет значение XX, затем завершается
В разделе END
записывается конец письма, если XX больше не пусто
Затем вы вкладываете это в команду, которая перенаправляет сообщение на sendmail, если что-то написано, и завершаете работу в другом случае:
{ awk 'BEGIN{XX="";print "Subject:...\nFrom:... <test@gmail.com>\nTo:test@gmail.com"} {if($2>20) {XX=$1;exit(0)}} END{if(XX!=""){printf("%s is over 21 attemps\015\n",XX)}else{exit(1)} }' file.tmp || exit;} > >(/usr/lib/sendmail -t test@gmail.com)
Обратите внимание, что || exit
активен, только если существует awk со значением> 0 (т. Е. С exit(1)
раздела END
)
Оригинальный пример на https://unix.stackexchange.com/questions/246863/awk-send-email-if