「ag」を使用して複数のファイルを無視する方法 Silver Searcher

「ag」を使用して複数のファイルを無視する方法 Silver Searcher

--ignore無視するファイルを指定するオプションがあります。現時点では、次の操作を実行するまで、複数のファイルを無視できます。--ignore file1 --ignore file2.......

試しても--ignore "*assets*|*scripts*"効果はありません。それでは、私が知らないことがありますか?

答え1

次のように中括弧拡張を使用できます。

ag pattern --ignore={'*assets*','*scripts*'}  path_to_search

または、次のようにGlenはここで提案します、プロセス交換:

ag pattern -p <(printf "*%s*\n" assets scripts) path_to_search

答え2

形式は--除外するパターンを無視します。

➜  proj git:(develop) ✗ ag User -l  | wc
     82      82    2951
➜  proj git:(develop) ✗ ag User -l --ignore 'tests*' | wc
     65      65    2348

証明する

➜  exp tree                                              
.
├── good.py
├── migrations.py
├── test2.py
├── test_another.py
└── tests.py

➜  for i in *.py; do echo "User" > $i; done 
➜  exp ag -l --ignore 'test*' --ignore 'migrations*' User
good.py

それではファイルが1つしかありません。OK.py返された、他のすべてのコンテンツはパターンによってフィルタリングされます

答え3

追加できます

*assets*
*scripts*

あなたの.gitignoreまたは.ignoreファイルに。

追加情報ファイルから:

It ignores file patterns from your .gitignore and .hgignore.
If there are files in your source repo you don't want to search, 
just add their patterns to a .ignore file. 

答え4

今回の話題は少し遅れて出ました。

、inagでは--ignore正規表現はサポートされていません。したがって、 ".json"拡張子を持つすべてのファイルを無視するには、代わりに--ignore='*.json'使用する必要があります。--ignore='.*.json'

複数のファイル拡張子を無視するには: ag --ignore='*.yaml' --ignore='*.json'

yaml上記は拡張子のあるファイルを無視しますjson

関連情報