egrep: 포함 및 포함하지 않음

egrep: 포함 및 포함하지 않음
egrep -i '12-12.*\swarning' log.file | cless

위 코드는 날짜와 12-12임의의 문자, 공백, 추가 Warning텍스트가 포함된 두 줄을 생성합니다.

2011-12-12 textetc Warning 1234
2011-12-12 textetc Warning 5678

끝에 1234를 포함하지 않는 행만 반환하고 싶습니다. 저는 GNU grep 2.5.4를 사용하고 있습니다.

현재 이것이 내 해결 방법입니다.

egrep -i '12-12.*\swarning' log.file > tmp.txt
egrep -i -v '1234' tmp.txt

파일을 생성하지 않고 첫 번째 파이프를 두 번째 파이프에 연결하려고 시도했지만 너무 많이 반환하거나 모두 잘못되었거나 아무것도 반환하지 않습니다.

답변1

2초를 사용해야 합니다 grep.

grep -i '12-12.*[[:space:]]warning' log.file | grep -v '1234$'

또는 다음을 사용할 수 있습니다.awk

awk '/12-12.*[[:space:]]warning/ && ! /1234$/' log.file

관련 정보