我正在尝试 grep 查找 Ui\.
的所有实例,后面没有 Line
甚至只是字母 L
编写正则表达式来查找特定字符串的所有实例(后面没有另一个字符串)的正确方法是什么?
使用前瞻
grep "Ui\.(?!L)" *
bash: !L: event not found
grep "Ui\.(?!(Line))" *
nothing
最佳答案
负向前瞻,这就是您所追求的,需要比标准 grep
更强大的工具。您需要一个启用 PCRE 的 grep。
如果您有 GNU grep
,当前版本支持选项 -P
或 --perl-regexp
,然后您可以使用正则表达式你想要的。
如果您没有(足够新的版本)GNU grep
,那么请考虑获取 ack
.
关于grep 中的正则表达式先行查找 'not followed by',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9197814/