有一个选项--ignore
允许指定要忽略的文件。目前我只能通过执行以下操作来忽略多个文件--ignore file1 --ignore file2.......
尝试使用--ignore "*assets*|*scripts*"
没有任何作用。那么有什么我不知道的问题吗?
答案1
您可以使用大括号扩展,例如
ag pattern --ignore={'*assets*','*scripts*'} path_to_search
或者,如格伦在这里建议,过程替换:
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
所以只有一个文件好.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
这个话题来得有点晚了。
,中ag
,--ignore
不支持正则表达式。因此,如果您想忽略所有带有“.json”扩展名的文件,您需要使用--ignore='*.json'
而不是--ignore='.*.json'
如果您想忽略多个文件扩展名,可以执行以下操作:
ag --ignore='*.yaml' --ignore='*.json'
上面将忽略带有yaml
和json
扩展名的文件。