GNU/Linux >> Linux の 問題 >  >> Linux

パターンに一致する特定のファイルを検索する方法は?

パターンに一致する特定のファイル内の単語を見つけるにはどうすればよいですか。例えばversionを検索しています CMake*で 現在のディレクトリで再帰的に見つかったファイル。

承認された回答:

ファイル名と行番号を確認したい場合は、POSIXly:

find . -name 'CMake*' -type f -exec grep -nF /dev/null version {} +

;は使用しません ここでは、1つのgrepを実行します ファイルごと)。これはGNUismの標準的な同等物です:

find . -name 'CMake*' -type f -print0 | xargs -r0 grep -nHF {} +

find (最初に)、xargs (2番目に)grepにできるだけ多くの引数を渡します コマンドに渡すことができる引数の数の制限を超えないように、可能な限り。その分割を行うと、最後の実行で1つの引数のみがgrepに渡される可能性があります。 その場合、grep ファイル名は出力されません。そのため、/dev/nullが必要です そこに(または-H GNU grepを使用 。

-type fを使用 、通常のファイルのみを考慮しています(デバイス、シンボリックリンク、パイプ、ディレクトリなどは考慮していません)。

GNUismを使用したい場合は、GNU grepを使用できます。 ディレクトリツリーを下る機能:

 grep -rHnF --include='CMake*' version .

-Rを使用したくない grepが発生するため ディレクトリツリーを下るときにシンボリックリンクをたどり、デバイス、FIFO、ソケットから読み取るには…

そのバージョンはより安全で効率的ですが、移植性はありません。


Linux
  1. Ubuntuでファイルを見つける方法は?

  2. サイズと拡張子でファイルを検索する方法は?

  3. ファイル内の複数の文字列を見つける方法は??

  1. Grepコマンドを使用してファイル内のテキストを検索する方法

  2. Linux で GREP を使用して特定のテキストを検索する方法

  3. パターンに一致するファイルを削除するために find コマンドを使用する方法は?

  1. ファイル内の複数行パターンを検索するにはどうすればよいですか?

  2. 複数のpdfファイルの内容を検索するには?

  3. Linuxコマンド:テキストファイルのみを「検索」する方法は?