我正在尝试使用带有“,”的分隔符循环文件,并在“列表”中打印出这些值,但我不确定如何获取分隔符的所有值。
我有一个包含这样的电子邮件的文件(全部在一行中):
[email protected],[email protected],[email protected]
我的脚本是这样的:
EmailsFile="/dev/fs/C/Users/myuser/Desktop/EMAILSTOREAD.txt"
for email in $(cat ${EmailsFile} | cut -d "," -f 1-100)
do
echo "${email}\n"
done
我做了 1-100,因为我不确定该文件可以包含多少个值。
我得到的输出是:
[email protected],[email protected],[email protected]
预期输出:
[email protected]
[email protected]
[email protected]
任何想法?
答案1
一个解决方案是:
awk '{ gsub(",","\n"); print $0 }' $EmailsFile
答案2
我更喜欢使用的解决方案tr
,因为它在coreutils
包装中。
tr ',' '\n' < ${EmailsFile}