假设我有一个包含以下文件的文件夹:
.
|__ components
| |__ index.js
| |__ _index.js
| |__ _index.en.js
|
|__ _.js
我想要的是在components/index.js
和_.js
中搜索并忽略所有components/_*.js
个文件。
基本上我需要像ack' --ignore-file=match:_.*\.js
这样的版本,但也需要支持文件路径的版本。
在ack 2中可以吗?
答案 0 :(得分:0)
不幸的是,ack
并没有直接支持忽略子目录中的某些文件。
另一种选择是将ack
与grep
结合使用,如下所示:
ack -f | grep -v -x 'components/_.*\.js' | ack -x mystr
解释:
ack -f
打印所选文件,而不进行实际搜索。
grep -v -x 'components/_.*\.js'
会匹配不包含_.*\.js
目录下components
个文件的行。
ack -x
然后从grep
读取要搜索的文件列表。
当然,您可以使用grep
定制要忽略的目录。