我正在努力调整我的正则表达式来过滤掉
从:
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或类似。
修改
我真的想知道为什么有人对这个问题投了赞成票?
答案 0 :(得分:2)
这会找到所有不包含/rlwrap
或/bash
后面跟空格的行:
grep -P '^(?!.*/(rlwrap|bash) )' file