固定長ファイルの少数のレコードが2つのレコードに分割されます。ファイルは次のようになります。 3番目のレコードは2つのレコードに分割されます。最後から「\r」を削除し、4行目を上に移動して3行目とマージするにはどうすればよいですか?
サンプルファイル:
Firstrow\n
Secondrow\n
Third\r\n
Row\n
Fourthrow\n
Fifthrow\n
望ましい最終結果:
Firstrow\n
secondrow\n
Thirdrow\n
Fourthrow\n
Fifthrow\n
答え1
努力する
sed '/\r/{N; s/\r\n//}' file
答え2
awkを使用すると、行に基づいて出力レコード区切り文字を使用できます。
awk '{ORS = sub(/\r$/,"") ? "" : RS};1' file > temp && mv temp file
または、Perl を使用して CRLF ペアを削除します。
$ perl -pi -e 's/\r\n//' file