linux - ack 忽略与正路径匹配结合的路径匹配的文件

标签 linux bash shell ack

我想要执行一个命令来搜索所有 .js 和 .php 文件,但忽略其中包含“Thirdparty/”和“data.js”的路径。

ack -il -G '(\.js|\.php)' 'my search string'

我尝试了 -v 但它似乎反转了所有 -G 运算符,而不仅仅是前面的运算符:

ack -il -G '(\.js|\.php)' -G '(Thirdparty|data\.js)' -v 'my search string'

我想忽略 ./Thirdparty 路径和 ./data.js 路径,但匹配所有 .js 和 .php 文件。

最佳答案

-v 反转模式(在本例中为“我的搜索字符串”),而不是文件名正则表达式。 使用较新版本的 ack,--invert-file-match 选项可以满足您的要求。以下内容应适用于 ack 1.96。

ack -il -G '(\.js|\.php)' --invert-file-match -G '(Thirdparty|data\.js)' 
'my search string'

关于linux - ack 忽略与正路径匹配结合的路径匹配的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12925496/

相关文章:

windows - Nano-X (Microwindow) 编程指南?

android - 获取Android App的Linux UID

linux - 跨线程ucontext

javascript - 如何在 Bash 中执行 javascript?

python - 使用curl获取csv的shell脚本

linux - 如何在子文件的第 2 列中 grep 包含值范围(-6 到 -7)的文件名?

shell - Unix sed 命令 - 全局替换不起作用

linux - arm linux 系统调用中 vector_swi() 中使用的堆栈指针是如何初始化的?

bash - 自动化 az 容器执行

linux - 如何检查 bash 和其他 shell 配置文件的差异