如何使用“,”循环一行值并将其打印为列表

如何使用“,”循环一行值并将其打印为列表

我正在尝试使用带有“,”的分隔符循环文件,并在“列表”中打印出这些值,但我不确定如何获取分隔符的所有值。

我有一个包含这样的电子邮件的文件(全部在一行中):

[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}

相关内容