두 개의 키워드가 포함된 텍스트 파일의 행 일치

두 개의 키워드가 포함된 텍스트 파일의 행 일치

샘플 파일

ssdnaslcnasjkdlcnljaksjcnaslcnlasncadcadsoadsklfjewilfm Warning error ascacs
kjasdncijojencikmasklcmioewmnconmqewciomnweiocn warning
sakcjnaksldnmclkasdmnckljamnklckmalc aslenkjlansdcledlkamsc error
alscmkklamclkamscklmnaeuye error warning

"오류"와 "경고"가 모두 있는 행만 가져오고 싶습니다.

답변1

대소문자 구분:

sed '/warning/!d; /error/!d' < file

또는

awk '/warning/ && /error/' < file

또는

grep warning < file | grep error

대소문자를 구분하지 않음:

암소 비슷한 일종의 영양

sed '/warning/I!d; /error/I!d' < file
gawk -v IGNORECASE=1 '/warning/ && /error/' < file

기준

grep -i warning < file | grep -i error
awk '{l = tolower($0)}; l ~ /warning/ && l ~ /error/' < file
sed '/[wW][aA][rR][nN][iI][nN][gG]/!d; /[eE][rR][rR][oO][rR]/!d' < file

(이 방법의 장점은 로케일에 의존하지 않는다는 것입니다. 예를 들어 일부 로케일에서는 다른 방법이 WARNING과 일치하지 않지만 WARNÁ와 일치할 수 있습니다.)

답변2

이 문제를 해결하는 또 다른 간단한 방법은 다음과 같습니다.grep -Ei 'error.warning|warning.error'

관련 정보