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



假设我有一个文件夹,其中包含如下文件:

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

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

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

在 ack 2 中可能吗?

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

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

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

解释一下:

ack -f打印选定的文件,而不实际搜索。

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

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

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

最新更新