Shell
如何使用’,‘循環一行值並將其列印為列表
我正在嘗試使用帶有“,”的分隔符循環文件,並在“列表”中列印出這些值,但我不確定如何獲取分隔符的所有值。
我有一個包含這樣電子郵件的文件(全部在一行中):
test1@mail.com,test2@mail.com,test3@mail.com
我的腳本是這樣的:
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,因為我不確定該文件有多少個值。
我得到的輸出是:
test1@mail.com,test2@mail.com,test3@mail.com
預期輸出:
test1@mail.com test2@mail.com test3@mail.com
任何的想法?
一個解決方案是:
awk '{ gsub(",","\n"); print $0 }' $EmailsFile
我更喜歡使用的解決方案
tr
,因為它在coreutils
包中。tr ',' '\n' < ${EmailsFile}