4

fooディレクトリ内の文字列を検索したいのですが、ファイル名appに含まれるファイルは除外しますmigrationsgrepこのコマンドが機能することを期待していました

grep -Ir --include "*.py" --exclude "*migrations*" foo app/

上記のコマンドは--excludeフィルターを無視しているようです。代わりに、私はできる

grep -Ir --include "*.py" foo app/ | grep -v migrations

これは機能しますがfoo、結果の強調表示が失われます。findミックスに持ち込んでハイライトを維持することもできます。

find app/ -name "*.py" -print0 | xargs -0 grep --exclude "*migrations*" foo

grep へのコマンド ライン パラメータの組み合わせについて何か不足しているのか、それとも単に一緒に機能しないのか、疑問に思っています。

4

2 に答える 2

3

.py ファイルの用語を探していましたが、移行ファイルをスキャンしたくなかったので、(grep 2.10 の場合) 次のものが見つかりました (これが役立つことを願っています)。

grep -nR --include="*.py" --exclude-dir=migrations whatever_you_are_looking_for . 
于 2014-08-07T16:09:59.640 に答える
0

man grep言います:

       --include=GLOB
          Search only files whose base name  matches  GLOB  (using  wildcard  matching  as  described  under
          --exclude).

そこに「のみ」と書かれているので、あなたの声明--includeがあなたの声明を上書きしていると思います--exclude

于 2013-01-08T19:02:07.157 に答える