1. ホーム
  2. linux

[解決済み] Linuxで、DOSの改行コード(CRLF)を含むファイルをgrepで検索するにはどうしたらいいですか?

2022-05-08 12:35:29

質問

Linuxで、DOSの改行文字を含むファイルをgrepで検索したい。 こんな感じ。

grep -IUr --color '\r\n' .

上記は、リテラルにマッチしているようです rn というのは、望まれていないことです。

この出力は xargs を通して todos にパイプされ、以下のように crlf から lf に変換されます。

grep -IUrl --color '^M' . | xargs -ifile fromdos 'file'

どのように解決するのですか?

使用方法 Ctrl + V , Ctrl + M と入力すると、キャリッジリターン文字がgrepの文字列にリテラルで入力されます。つまり

grep -IUr --color "^M"

は動作します - もし ^M があり、そこに私が提案したようにリテラルなCRを入力します。

ファイルのリストが必要な場合は、ファイル名の前に -l というオプションもあります。

説明

  • -I バイナリファイルを無視する
  • -U は、grep が CR 文字を除去しないようにします。デフォルトでは、テキストファイルと判断された場合、この処理を行います。
  • -r 各ディレクトリの下にあるすべてのファイルを再帰的に読み込む。