Регулярное выражение PCRE для соответствия тексту, кроме группы слов - PullRequest
1 голос
/ 07 марта 2012

Я изо всех сил пытаюсь настроить свое регулярное выражение для фильтрации

  • rlwrap
  • Баш

от

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 или аналогичные.

EDIT
Мне действительно интересно, почему кто-то проголосовал против этого вопроса?

1 Ответ

2 голосов
/ 07 марта 2012

Это найдет все строки, которые не содержат /rlwrap или /bash, за которыми следует пробел:

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