Text-Processing
在每 2 個 ‘,’ 之後分隔元素並在 bash 中推入下一行
我的文件範例如下所示:
201012,720,201011,119,201710,16
我想要的輸出:
201012,720 201011,119 201710,16
使用 Sed 循環:
sed -e 's/,/\n/2' -e 'P;D' file
前任。
$ echo '201012,720,201011,119,201710,16' | sed -e 's/,/\n/2' -e 'P;D' 201012,720 201011,119 201710,16
這會將第二個替換為
,
,\n
然後重複列印並刪除\n
, 直到替換不再成功。BSD 不理解命令
\n
右側的換行符s
,這是 ksh、bash、zsh shell 的解決方法:sed -e :a -e $'s/,/\\\n/2' -e 'P;D' file
或者,(舊)seds 的一般解決方案:
sed ' :a s/,/\ /2 P;D ' file