代码之家  ›  专栏  ›  技术社区  ›  kawther

如何在csh中从每一行获取电子邮件并将该行作为电子邮件发送到同一地址

  •  0
  • kawther  · 技术社区  · 8 年前

    我有一个文本文件。我需要从每行中选择地址邮件,并将每行发送到相应的地址。

    我尝试使用 foreach awk 选择地址

    set valuea = `awk '{print $3}' FichierNote`
    

    你能告诉我怎么做吗?这是文件中的数据。

        8 mariamms maria@gmail.com (cto;MDG_MMS) 
        7 lj16 jean-christophe@gmail.com (gnb;DIG_FMTRD) 
        7 imbse emma.imbspi@gmail.com (gnb;MDG_MMS) 
        6 viviens stephano.vien@gmail.com (gnb;IMD) 
        5 alberghv vinco.alrghina@gmail.com (cto;ADG) 
    
    3 回复  |  直到 8 年前
        1
  •  1
  •   Abhijit Pritam Dutta    8 年前

    您需要创建如下脚本:-

        #!/usr/bin/csh
    
    while read -r line
    do
      mailId=$(echo "$line" | awk '{print $3}')
      #echo $mailId
      #here you have to put your mail command
      #example 'sendmail -f source_mail_id.com $mailId < mailContentFile.txt'
    done < FichierNote
    

    上述脚本将如何工作?在里面 while 循环它将读取每一行 awk 命令将每次剪切邮件id并存储在 mailId 变量现在您需要输入mail命令并输入 $mailId 变量作为电子邮件地址。

        2
  •  1
  •   Utsav    8 年前

    也许有一个更简单的方法,但这就是我能想到的。

    while read -r line; do echo "$line"|mail -s "your_subject" "$(echo "$line"|awk '{print $3}')"; done < emailList.txt
    

    代替 your_subject 与主题相关。

    假设:电子邮件位于第3列。

    说明:

    1. while read -r line;do...done < file 将逐行读取文件 每一行将存储在变量中 $line
    2. "$(echo"$line"|awk '{print $3}')" 将获取要传递到的电子邮件地址 mail 命令

    3. do echo "$line"|mail -s "your_subject" "$(echo "$line"|awk '{print $3}')"; 将行作为邮件正文发送到电子邮件地址 在上述步骤中导出。

        3
  •  1
  •   Ronan Boiteau    8 年前

    这是我最后使用的脚本 csh :

    #!/bin/csh
    foreach line ( "`cat FichierNote`" )
        echo $line | mail -s "Subject" `echo $line | awk '{print $3}'`                      
    
    end