^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 -e :a -e '/\r$/N; s/\r\n//; ta' file.csv
から:http://www.catonmat.net/blog/sed-one-liners-explained-part-one/
このオプションを使用する必要はなく、cat
必要に応じてこのオプションを使用してファイルを直接編集できます。-i