我想在用逗號分隔的不同行中使用bash腳本打印不同的單詞。在逗號分隔的不同行上打印每個單詞
ent0
ent4
ent1,ent5
ent2,ent6
ent3,ent7
ent29,ent30
我想打印不同行中的每個單詞。
我想在用逗號分隔的不同行中使用bash腳本打印不同的單詞。在逗號分隔的不同行上打印每個單詞
ent0
ent4
ent1,ent5
ent2,ent6
ent3,ent7
ent29,ent30
我想打印不同行中的每個單詞。
使用tr
,
echo 'ent0 ent4 ent1,ent5 ent2,ent6 ent3,ent7 ent29,ent30' | tr ',' '\n'
使用sed
,
echo 'ent0 ent4 ent1,ent5 ent2,ent6 ent3,ent7 ent29,ent30' | sed 's/,/\n/g'
兩者都會產生,
ent0 ent4 ent1
ent5 ent2
ent6 ent3
ent7 ent29
ent30
編輯:
您的需求不夠清楚。如果你想通過這兩個逗號和空格分割,
echo 'ent0 ent4 ent1,ent5 ent2,ent6 ent3,ent7 ent29,ent30' | tr ', ' '\n'
或
echo 'ent0 ent4 ent1,ent5 ent2,ent6 ent3,ent7 ent29,ent30' | sed 's/\(,\| \)/\n/g;'
這將產生,
ent0
ent4
ent1
ent5
ent2
ent6
ent3
ent7
ent29
ent30
如果內容是在一個文件,說input.txt
,用它而不是echo
。
tr ', ' '\n' <input.txt
如果我理解你的問題,你可以用IFS
,printf
和命令替換,例如做很簡單
$ IFS="$IFS,"; printf "%s\n" $(<file.txt)
ent0
ent4
ent1
ent5
ent2
ent6
ent3
ent7
ent29
ent30
(不要忘了復位IFS
其默認$' \t\n'
(空間標籤換行)完成後,你以後可以節省oldifs="$IFS"
,然後運行命令,並設置IFS="$oldifs"
作爲一種簡單的復位)
這是不清楚你在問什麼。這是輸入嗎?那麼期望的輸出是什麼?還是輸出?輸入是什麼樣的?你爲了解決問題而編寫的代碼在哪裏?你有什麼具體問題?它必須是Bash嗎?用逗號分隔什麼?線條或文字?措辭含糊不清。 –
喜是輸入,我需要的輸出是這樣的 –
輸入:ENT0 ent4 ENT1,ent5 ENT2,ent6 ent3,ent7 ent29,ent30 –