如何将存储在文件中的行拆分为字符串(bash)

时间:2012-07-08 13:41:17

标签: bash mutt

我有一个格式为

的文件
email1 "subject of email1" "body of email1"
email2 "subject of email2" "body of email2"

我想向所有电子邮件ID发送电子邮件,主题和正文从此文件中选取。

我尝试了类似以下的内容,但没有按预期工作

cat ~/file.txt \
| while read -a CONTACT
    do 
       echo ${CONTACT[2]} | mutt -s ${CONTACT[1]} ${CONTACT[0]}
    done  

最好的方法是什么?

2 个答案:

答案 0 :(得分:1)

试试这个

while read line;do
  eval "set -- $line"
  echo "$3"|mutt -s "$2" "$1"
done <~/file.txt

答案 1 :(得分:0)

如果没有其他双引号:

input="file.txt"

IFS='"'
while read -a CONTACT ; do
  echo -e "<${CONTACT[0]}> <${CONTACT[1]}> <${CONTACT[3]}>"
done < "$input"

输出

<email1 > <subject of email1> <body of email1>
<email2 > <subject of email2> <body of email2>