如果文件名与以下任何单词匹配,我想忽略该文件:copy、cony、coby OR tool、trol、thol 等。
这个有效:
ack -l -i --ignore-file=match:/co.y/ --ignore-file=match:/t.ol/ "mystring" _mynukelib
但我想使用单个 --ignore 参数。我尝试使用“|”像普通正则表达式一样创建“OR”逻辑,但不起作用:
ack -l -i --ignore-file=match:/co.y|t.ol/ "mystring" _mynukelib
执行逻辑或的正确语法是什么?
答案1
要使该ignore
开关针对多个正则表达式起作用,请使用花括号和逗号。
ack -l -i --ignore-file=match:{t.ol,co.y} "mystring" _mynukelib
这将忽略_mynukelib
目录中名称为正co.y
则表达式的任何文件,t.ol
即使它们包含mystring
.
要排除其他正则表达式(或字符串),只需将它们添加到以逗号分隔的大括号中即可。ack
使用 shell 的大括号扩展,bash
这可能就是您正在使用的。它的工作原理是一样的。