テキストファイルから^ Mと次の行を削除する方法は?

テキストファイルから^ Mと次の行を削除する方法は?

^M(キャリッジリターン)を含む次の行があります。 ^M+行を削除したいと思います。各^ Mの後に新しい行があることがわかりますが、これは望ましくありません。私の意図は、制御文字を削除し、1行のCSVを作成することです。

    '1.0';'';'';'';'Mon Jul 04 00:00:00 CEST 2016';'To cash Pls Acc 4142^M
To cash Pls Acc 4142';'To cash Pls Acc 4142^M
Money';'236159';'236159';'-2000.0';'';'2000.0'

私は以下を試しましたが、成功しませんでした。注:^ M =制御v +制御m

cat file.csv | sed 's/[\^M\n]//g' > new_file.csv

上記の行では^ Mが削除されましたが、行はまだ新しい行に分かれています。

期待される出力

 '1.0';'';'';'';'Mon Jul 04 00:00:00 CEST 2016';'To cash Pls Acc 4142To cash Pls Acc 4142';'To cash Pls Acc 4142 Money';'236159';'236159';'-2000.0';'';'2000.0'

ベストアンサー1

これはあなたの場合に機能します。

sed -i ':a;N;$!ba;s/\r\n//g' file.csv

から:sedは改行文字を置き換えることができますか?

またはこれ:

sed -e :a -e '/\r$/N; s/\r\n//; ta' file.csv

から:http://www.catonmat.net/blog/sed-one-liners-explained-part-one/

このオプションを使用する必要はなく、cat必要に応じてこのオプションを使用してファイルを直接編集できます。-i

おすすめ記事