Как напечатать текст в файл внутри команды awk? - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть файл, содержащий информацию о пользователях сервера: имя, фамилия, имя пользователя, класс.

Я должен отправить электронное письмо каждому пользователю, содержащему эту информацию, например:

Уважаемые Имя, Фамилия!

Ваша оценка по классу - "оценка".

Если оценка ниже 5: Мы ждем вас на следующей дате экзамена.

Также я должен распечатать эти сообщения в один файл, включая системное время.

Мне удалось сгенерировать эти сообщения и собрать их в один файл. Но как я могу отправить каждое отдельное письмо соответствующим пользователям?

Метод, который я пытаюсь распечатать, - это сообщение в файл (который sh я снова использую для каждого пользователя), а затем добавить содержимое в основной текстовый файл.

Но я получаю сообщение об ошибке во втором случае:

awk: cmd. line:17: 

Эта строка: Уважаемый $ 1 $ 2! эхо Мы ждем вас на следующей дате экзамена из класса. echo

и я не знаю, что мне делать.

Вот мой код:

awk -v class=$1 -v file=$2 '{   
if ($4 >= 5){      
        cat > message
        Dear $1 $2! echo Your class grade is $4. echo   
}
else {
        cat > message   
        Dear $1 $2! echo We are waiting for you at the next exam date from class. echo 
}
fi
}' $2 >$1_log                                                                                                                                                                                                                          

Я могу отправить сообщение с помощью следующей команды:

mail -s "message" user

Как я могу генерировать эти электронные письма, отправлять их пользователям и распечатывать все вместе в одном файле?

1 Ответ

0 голосов
/ 15 апреля 2020

это должно создать файл журнала, который вы ищете. Для отправки электронных писем вам также необходимо иметь доступ к адресам электронной почты, возможно, в том же файле класса? Получено от имени пользователя?

$ awk '{print "Dear " $1 " " $2 "! Your class grade is " $4 "."
        if($4 < 5) 
           print "We are waiting for you at the next exam date from class"}}' class_file > log_file   
...