roll.txt
改行なしでコンマ区切り形式で次のデータを含むファイルがあります。
'123456789','987651234','129873645','213456789','987612345','543216789','432156789','876543291','213465789','542637819','123456','23456','22234','3456','7890543','34567891,'2345','567'
各行の末尾にカンマ区切り文字が6回表示されるたびに、新しい行を挿入する必要があります。
予想される出力は次のとおりです。
'123456789','987651234','129873645','213456789','987612345','543216789'
'432156789','876543291','213465789','542637819','123456','23456'
'22234','3456','7890543','34567891,'2345','567'
次のコマンドを使用していますが、sed
動作しません。
sed 's/[^,]//g'
ベストアンサー1
そしてtr
&paste
:
tr ',' '\n' <infile |paste -sd',,,,,\n'
より読みやすく理解するために:
tr ',' '\n' <infile |paste --serial --delimiters=',,,,,\n'
この場合、話すたびに改行を追加したいときは、N=100場所にいる場合は、99のカンマを入力するのが好きではありません',,,,,,,,,, ... ,\n'
。代わりに中printf
かっこ拡張を使って作成しましょう。
tr ',' '\n' <infile |paste -sd $(printf '%.1s' ,{1..99})'\n'
~からman paste
:
-d, --delimiters=リスト TABの代わりにLISTの文字を再利用する -s, --serial ファイルを並列に貼り付けるのではなく、一度に1つずつ貼り付ける