レコードを列に積み重ねる

レコードを列に積み重ねる

次のファイルがあります。

1
2
3
     # always a double newline
a
b
c     # each subgroup has the same number of rows

9
10

y
z
...

デフォルトでは、列1、二重改行、列2、二重改行、再び列1

値の性質(何でも構いません)または「列」の数(あらかじめ知られていますが、2または3です)を想定しないでください。

次の出力が出ることが予想されます。

1,a
2,b
3,c
9,y
10,z
...

仕事に適したツールは何ですか?

ベストアンサー1

awkとを使用する別の解決策は次のとおりbashです。

paste -d, <(awk -v RS='\n\n' 'NR%2' file) <(awk -v RS='\n\n' '!(NR%2)' file)

これは空行だけを区切り文字と見なし、空でない行は何でも構いません。

おすすめ記事