予期しない改行を含む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本のラインを保持してください。次の行の先頭にセミコロンが表示されている場合は、改行文字を切り取り、ループバックして次の行をパターン空間に読み込みます。
次の行にセミコロンがない場合は、ループを終了して最初の改行文字まで印刷してからその部分を削除して返し、次の行をパターンスペースに追加します。