1

で再帰的に検索したいテキストがありますmydir/。通常は入力grep -r "text to find" mydir/"しますが、特定のファイルを除くすべてのファイルを検索したい場合は、何を入力しますか?

たとえば、ファイル「myfile.txt」を検索したくありませんが、ディレクトリに含まれています。

何を入力しますか?

4

2 に答える 2

3

簡単な方法の 1 つは、BASH の拡張ファイル グロビングを使用することです。

次のように使用できる拡張否定グロブがあります。

shopt -s extglob
grep -r "text to find" !(myfile.txt)

もう 1 つのより柔軟な方法は、 と を組み合わせて使用​​することfindですxargsfind必要なファイルのみを除外し、xargsそれらを引数として grep に渡すために使用します。

次の魂の仕事のようなもの:

find -type f -not -name myfile.txt | xargs grep "text to find"
于 2012-07-13T05:17:04.637 に答える
2

次のコマンドを使用して、ファイルを除外できます。

grep -r --exclude="myfile.txt" "text to find" 
于 2012-07-13T05:16:45.323 に答える