PCRE正则表达式匹配除单词组之外的文本

时间:2012-03-07 14:00:34

标签: regex pcre

我正在努力调整我的正则表达式来过滤掉

  • rlwrap
  • 的bash

从:

cat file  
user   30300 29384  0 Mar05 pts/4    00:00:00 /opt/bin/rlwrap /opt/test/l64/app apps/bin -gw :1234 -p 10006  
user   30301 30300  0 Mar05 pts/5    00:00:00 /opt/test/l64/app apps/bin -gw :1234 -p 10006  
user   30300 29384  0 Mar05 pts/4    00:00:00 /opt/bin/bash /opt/test/l64/app apps/bin -gw :1234 -p 10006 

所以我只需要获得第二行:

grep -P 'regex' file  
user   30301 30300  0 Mar05 pts/5    00:00:00 /opt/test/l64/app apps/bin -gw :1234 -p 10006  

我所拥有的是:

grep -P '((?:(?!rlwrap\b|bash\b).)*?)-p 10006$' file

但它不起作用:(

我只需要PCRE正则表达式,我需要让它使用 grep -P 语句。
所以请不要awk,perl,sed,grep -v或类似。

修改
我真的想知道为什么有人对这个问题投了赞成票?

1 个答案:

答案 0 :(得分:2)

这会找到所有不包含/rlwrap/bash后面跟空格的行:

grep -P '^(?!.*/(rlwrap|bash) )' file