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

Linuxでディレクトリのコンテンツ全体で単語を検索する方法

xargs は、他のコマンドが生成しない形式での入力を想定しているため、効果的に使用するのは困難です。ここで間違っているのは、xargs への入力で名前を引用する必要があるファイルがあることです。 (おそらく ' を含む ).

grep が -r をサポートしている場合 または -R 再帰検索のオプション、それを使用してください。

grep -r word .

それ以外の場合は、-exec を使用します find のプライマリ .これは、xargs と同じ効果を得る通常の方法です。 ただし、ファイル名に制約がない場合を除きます。 find のかなり最近のバージョン 補助コマンドの 1 回の呼び出しで複数のファイルをグループ化できます。 /dev/null を渡す grep へ 単一のファイルで呼び出された場合でも、各一致の前にファイル名が表示されるようにします。

find . -type f -exec grep word /dev/null {} +

find の古いバージョン (古いシステムや OpenBSD、または BusyBox などの縮小ユーティリティでは) 一度に 1 つのファイルに対してのみ補助コマンドを呼び出すことができます。

find . -type f -exec grep word /dev/null {} \;

find のいくつかのバージョン と xargs ヌル文字を使用してファイル名を区切り、引用符が不要になるように、正しく通信できる拡張子を付けます。最近では、OpenBSD だけが -exec … {} + なしでこの機能を備えています。 .

find . -type f -print0 | xargs -0 grep word /dev/null

私はあなたが最初のオプションを意味していると思います

ファイル内のコンテンツを検索するための grep 再帰

grep -R "content_to_search" /path/to/directory

一致するファイルを検索するための ls 再帰

ls -lR | grep "your_search"

GNU ツールがある場合 (Linux タグが正確な場合はそうします)、 -print0 を使用できます と -0 通常の引用の問題を回避するには:

find . -type f -print0 | xargs -0 grep word

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

  2. Linux – Dmesgで何をgrepするかを知る方法は?

  3. Linux –特定の単語をgrepしてテキストを取得する方法は?

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

  2. Linuxシェルスクリプトで正規表現を使用してファイルを検索する方法

  3. ディレクトリ全体で dos2unix を実行するにはどうすればよいですか?

  1. Linux で単語を検索し、行全体を表示する

  2. ubuntuでターミナルからディレクトリを検索する方法

  3. 複雑な検索のためにfindとgrepを組み合わせる方法は? (GNU/linux、find、grep)