• 締切済み

^Mをディレクトリにある全てのファイルから削除する方法

^Mにはいつも悩まされます。。 ^Mをディレクトリ内の全ファイルから 一発で削除する方法ありますでしょうか? 文字コードはEUCです。 perl -i.bak -pe 's/cM//' * とやっても^Mは消えてくれませんでした。。 LinuxかWindowsでできれば広範囲な環境で 削除できるコマンドはシェルが知りたいです。

みんなの回答

  • shige_70
  • ベストアンサー率17% (168/946)
回答No.3

テキストファイルのみで使える簡易な方法として、trコマンドを使用する方法を御紹介します。  tr -d \\r <infile >outfile です。文字コードが何であっても使用できます。 ディレクトリ内一括でしたら、Bourne shell スクリプトなら例えば  #! /bin/sh  for foo in * ;do   tr -d \\r <${foo} >${foo}.tmp$$   mv ${foo}.tmp$$ ${foo} done とやればいいでしょう。 上記方法は、テキストファイル以外ではファイルが壊れる場合がありますので注意してください。

  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.2

Linuxなら、nkfコマンドがあります。 詳しくは # man nkf -L[wmu] new line mode -Lu unix (LF) -Lw windows (CRLF) -Lm mac (CR) default no conversion findコマンドなどと組み合わせてまとめて変換する シェルなど作れます。

  • epson01
  • ベストアンサー率12% (120/933)
回答No.1

^M とは、CR+LFの「CR」のことでしょうか。 もしそうなら、UNIXの「sed」コマンドで、消してしまうのはどうでしょうか。

matchori
質問者

補足

そうです、にっくきCRです。笑 Sedは良さそうですね。 具体的な方法については探ってみようと思います。