空の列がある場合、列を複数の列に分割する

空の列がある場合、列を複数の列に分割する

次の点に関して助けが必要です。

A
B
C

1
2

Q
W
A

空の列が見つかるたびに、その列を新しい列に分割します。

出力:

A,1,Q   
B,2,W
C,,A

Sedを使用しましたが、分割するキーワードが見つかりませんでした。データが多すぎて効率的に処理する方法はありませんか?

ありがとう

ベストアンサー1

$ csplit -zsf file ip.txt /^$/+1 {*}
$ paste -d, file* | head -n -1
A,1,Q
B,2,W
C,,A

マニュアルから:

分割- ファイルをコンテキストラインによって決定された部分に分割する

-z, --elide-空のファイル空の出力ファイルの削除

-s, --quiet, --silent出力ファイルサイズの数を印刷しない

-f, --prefix=プレフィックス'xx'の代わりにPREFIXを使用してください。

生地- ファイルラインのマージ

-d, --delimiters=リストTABの代わりにLISTの文字を再利用する

head -n -1最後の行を削除するには、次を使用することもできます。sed '$d'

おすすめ記事