CSVファイルで予期しない改行

CSVファイルで予期しない改行

予期しない改行を含むcsvファイルがあります。ファイルはおおよそ次のようになります。

col1; col2; col3; col4
 1a;   1b;   1c;  1d   
 2a;   2b;   2c   
;2d                   # this should be in the row above 
 3a;   3b;   3c;  3d

;前の行から始めて各行をリンクしてから削除したいと思います。どうすればいいですか?

ベストアンサー1

$ sed -e '
    :loop
       $!N
       s/\n;/;/
    tloop
    P;D
 ' file.csv

常にパターン空間に2本のラインを保持してください。次の行の先頭にセミコロンが表示されている場合は、改行文字を切り取り、ループバックして次の行をパターン空間に読み込みます。

次の行にセミコロンがない場合は、ループを終了して最初の改行文字まで印刷してからその部分を削除して返し、次の行をパターンスペースに追加します。

おすすめ記事