샘플 파일
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'