有没有办法使用ack忽略文件路径?

时间:2016-03-02 16:19:07

标签: filter ack

假设我有一个包含以下文件的文件夹:

.
|__  components
|    |__  index.js
|    |__  _index.js
|    |__  _index.en.js
|
|__  _.js

我想要的是在components/index.js_.js中搜索并忽略所有components/_*.js个文件。

基本上我需要像ack' --ignore-file=match:_.*\.js这样的版本,但也需要支持文件路径的版本。

在ack 2中可以吗?

1 个答案:

答案 0 :(得分:0)

不幸的是,ack并没有直接支持忽略子目录中的某些文件。

另一种选择是将ackgrep结合使用,如下所示:

ack -f | grep -v -x 'components/_.*\.js' | ack -x mystr

解释:

ack -f打印所选文件,而不进行实际搜索。

grep -v -x 'components/_.*\.js'会匹配包含_.*\.js目录下components个文件的行。

ack -x然后从grep读取要搜索的文件列表。

当然,您可以使用grep定制要忽略的目录。