我试图打印在文件中没有跟随e
b
行。 我尝试使用负面预测,但它不工作。
grep 'b(?!e)' filename grep '(?!e)b)' filename egrep 'b(?!e)' f3.txt
当我运行这些命令时,什么也没有显示,没有错误或其他的东西。 我也检查了其他人的类似post,但无法运行。
grep -E 'b([^e]|$)' filename
这应该匹配“b”,后面跟着一个不是“e”的字符,或者是在行尾的“b”。
如果你的grep使用-P
支持Perl正则表达式,
$ grep -P 'b(?!e)' <<< 'be' # Gets no output $ grep -P 'b(?!e)' <<< 'bb' bb $ grep -P 'b(?!e)' <<< 'b' b
与grep -E
(在这种情况下)唯一的区别是,你不必处理行结束的情况(见pilcrow的答案 )。