複数の単語を含む(再帰的に)ディレクトリツリー内のすべてのファイルをリストする方法を見つけることを試みます。linux:複数の単語を含むファイルを一覧表示する
検索中に、egrep -R -l 'toto|tata' .
などの例が見つかりましたが、 ORを誘発する。私は、
GNU grep
GNU xargs
で使用してあなたの助け
複数の単語を含む(再帰的に)ディレクトリツリー内のすべてのファイルをリストする方法を見つけることを試みます。linux:複数の単語を含むファイルを一覧表示する
検索中に、egrep -R -l 'toto|tata' .
などの例が見つかりましたが、 ORを誘発する。私は、
GNU grep
GNU xargs
で使用してあなたの助け
いただきありがとうございます...
grep -ERl 'toto' | xargs -r grep 'tata'
最初grep
リスト、その後xargs
にとが供給されるパターンtoto
を含む、それらのファイルを好きだろう2番目のgrep
のファイルにはtata
が含まれています。 -r
フラグは、2番目のgrep
が空の出力で実行されないようにすることです。
man
ページからxargs
で-r
フラグは、
-r, --no-run-if-empty
If the standard input does not contain any nonblanks, do not run the command.
Normally, the command is run once even if there is no input. This option is a GNU
extension.
agrep
ツールを提供するために設計されており、使用にはgrepする:あなたのケースで
agrep 'pattern1;pattern2' file
あなたは
find . -type f -exec agrep 'toto;tata' {} \; #apply -l to display the file names
を実行することができます
PS1:cあなたはちょうどagrep 'pattern1;pattern2' *.*
PS2:unfortunatelly agrepは-Rオプションをサポートしていません。
s /残念ながら/幸いにも/実際には 'agrep'はこれには役に立ちません。あなたはいつでも' awk '/ pattern1/&&/pattern2 /' 'を任意のUNIXシステム上で実行できるからです。 –
'find。 -name '* toto *' -a -name '* tata *' '? – myaut
@myaut:OPはファイルの内容にパターンが必要で、ファイル名ではないと思います/ – Inian
ファイルに特定の順序で単語が含まれていなければなりませんか?あるいは言葉だけを含んでいますか?私は再帰的だとは思わないが、それを行うことができるスクリプトを持っている。それは変更することができます。 –