
通常、ファイルから^Mを削除するには、次のようにします。
dos2unix test.txt test.txt
tr -d '\r' < old.file > new.file
しかし、この方法は新しいファイルを作成する必要があると主張します。
他のファイルを生成したくない場合は、解決策は次のとおりです。perl onelinerの例
perl -pi -e 's/^M//g' file1
Solarisでこれを試しましたが、不明な理由で^ Mはまだファイルに存在しますか?
ここで何が問題なのかアドバイスをお願いします
答え1
Perlには\r
以下も必要です。
perl -pi -e 's/^M//g' file1
^^ - should be \r
実際にはそうかもしれませんが、ただ行末にこだわりたいです。
perl -pi -e 's,\r\n,\n,g' file1
実際には、これを行うためにPerlは必要ありません。sed
以下を完全に実行できます。
sed -i.bak -e 's,\r\n$,\n,g' file1
答え2
\r
代わりに、^M
キャリッジリターンを一致させるにはを使用する必要があります。行の先頭のすべての文字が^M
削除されたので、M
ファイルがまだ正しいかどうかを確認したい場合があります。