1
나는 모든 라인 그들은 또한 bar
를 포함하지 않는 foo
, 를 포함 제외 보여주고 싶습니다. Logically!(foo and (!bar)) === (!foo) or bar
, 그래서 두 개의 표현식을 사용할 수 있습니다. 단일 grep
또는 egrep
와이 종류의 일치를 수행 할 수 있습니까? 이 두 표현을 부정하기 때문에 -v
은 작동하지 않습니다, 나는 아마 펄 정규식을 사용할 수 없습니다.더블/반전 된 egrep
하지만이 egrep
에서 할 수 있다면 코드를 변환하는 더 적은 일 것이다 :
$ echo '
foo
bar
moofoo
foobar
barbar' | grep -Pv '^((?!bar).)*foo((?!bar).)*$'
bar
foobar
barbar
손에서 문제는 속도 (기가 바이트의 데이터에서 패턴을 찾고).
와우 내 머리가 아플뿐입니다. 좋은 질문. 호기심 때문에 Perl 정규 표현식을 사용하지 못하게 된 이유는 무엇입니까? egrep이 -P를 지원하지 않습니까? –
@Dave G :'egrep -P'는'pgrep' 또는'grep -P'와 동일하므로 아무 것도 변경하지 않습니다. – l0b0