コンマで区切られたフィールドの1行を、それぞれ特定の数のフィールドを含む複数行に分割する方法は?

コンマで区切られたフィールドの1行を、それぞれ特定の数のフィールドを含む複数行に分割する方法は?

このようなファイルがあります。

Hello,Hi,Hullo,Hammers,Based,Random

の場合、n=2出力は次のようになります。

Hello,Hi
Hullo,Hammers
Based,Random

の場合、n=3出力は次のようになります。

Hello,Hi,Hullo
Hammers,Based,Random

これを行うためにawk / sedをどのように使用できますか?

編集:nフィールド数は要素です。

ベストアンサー1

$ awk -v n=2 -F',' '{for (i=1;i<=NF;i++) printf "%s%s", $i, (i%n ? FS : ORS)}' file
Hello,Hi
Hullo,Hammers
Based,Random

$ awk -v n=3 -F',' '{for (i=1;i<=NF;i++) printf "%s%s", $i, (i%n ? FS : ORS)}' file
Hello,Hi,Hullo
Hammers,Based,Random

お客様の質問では、フィールド数が分割できない場合の処理​​方法については説明していないnため、ここでも説明していません。

おすすめ記事