Работа с CSV-файлом для отправки почты
У меня есть файл CSV на хосте Linux, и он имеет 2 столбца, разделенных запятыми: 1-й столбец - адрес электронной почты, а второй - корпоративный адрес электронной почты. Второй столбец (электронная почта корпорации) может быть одним ИЛИ много корпоративных писем.
root @ esm-pauth1 # cat owners_and_corps.csv` kwolff @ fordham.edu, OSP Аян @ fordham.edu, fincenter dyaun @ fordham.edu, Cateringlc, RamHealth, fordhamfood tyip @ fordham.edu, Healthstudy, memoryhealth, psychidentity, sleepstudy, yddc
Как я использую awk
, sed
или любая такая команда, чтобы отправить электронное письмо пользователю в первом столбце и уведомить его о корпоративном электронном сообщении во 2-м столбце (или, возможно, со 2-го по n-й столбец) в зависимости от того, как корпоративные электронные письма отправляет владелец. Имейте в виду, что корпоративные письма в файле НЕ имеют @fordham.edu
в конце этого
т.е. отправлять почту на ayan@fordham.edu
уведомив ее о корпоративной электронной почте fincenter@fordham.edu
т.е. отправлять почту на dyaun@fordham.edu
уведомляя его о корпоративных электронных письмах Cateringlc@fordham.edu
, RamHealth@fordham.edu
, fordhamfood@fordham.edu
1 ответ
Вы хотите что-то вроде
cat owners_corps.csv | awk -F, '{print "To: "$1;$1=""; print "Corp mails: "$0}'
Вы упомянули, что адреса корпорации не будут иметь адрес @fordham.edu, но приведенный выше есть, однако я не уверен, что это просто ошибка форматирования. Вы можете использовать что-то вроде следующего,
#!/bin/bash
while read line; do
#Get the email from the first column
email_to=$(echo $line|cut -d, -f1)
#Get the list of corp emails from the second column until end, strip white space, add @fordham.edu to the last entry (Won't have comma) then add @fordham.edu to all others
corp_emails=$(echo $line |cut -d, -f2-|sed 's/\s//g; s/$/@fordham.edu/g; s/,/@fordham.edu,/g')
echo "To: $email_to :: list of corp addresses: $corp_emails"
#echo "List of corp addresses $corp_emails" | mail -s "Corp Address List" $email_to
done < owners_corps.csv
Зациклить файл и добавить @fordham.edu ко всем адресам корпорации. Он будет отображать то, что будет отправлено по умолчанию, но я включил в пример пробный канал электронной почты, закомментированный также, если вы хотите направить сообщение напрямую на почту.