Работа с CSV-файлом для отправки почты

628
Patrick Guerrier

У меня есть файл 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 - м столбца (или, возможно, второй в п - м столбца) в зависимости от того, как человек корпоративных электронных почт владелец имеет. Имейте в виду, что корпоративные письма в файле НЕ имеют @fordham.eduконца

т.е. отправлять почту, чтобы ayan@fordham.eduуведомить ее о корпоративной почтеfincenter@fordham.edu

то есть) отправить почту dyaun@fordham.eduуведомления его корпоративных электронных писем Cateringlc@fordham.edu, RamHealth@fordham.edu,fordhamfood@fordham.edu

0

1 ответ на вопрос

0
Scott-Mc

Вы хотите что-то вроде

cat owners_corps.csv | awk -F, ''

Вы упомянули, что адреса корпорации не будут иметь адрес @ 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 ко всем адресам корпорации. Он будет отображать то, что отправит по умолчанию, но я включил в пример пробный канал электронной почты, закомментированный также, если вы хотите направить сообщение напрямую на почту.

Похожие вопросы