![하나의 grep 명령을 사용하여 여러 패턴 제외](https://linux55.com/image/76504/%ED%95%98%EB%82%98%EC%9D%98%20grep%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EC%97%AC%EB%9F%AC%20%ED%8C%A8%ED%84%B4%20%EC%A0%9C%EC%99%B8.png)
다음 명령을 실행하는 가장 좋은 방법이 있는지 궁금합니다.
cat cisco.log-20151103.log | grep -v "90.192.142.138" | grep -v "PIX" | grep -v "Intrusion"
나는 노력했다
cat cisco.log-20151103.log | grep -v "90.192.142.138|PIX|Intrusion"
하지만 작동하지 않습니다.
답변1
다른 두 가지 옵션
grep -v -e 90.192.142.138 -e PIX -e Intrusion cisco.log-20151103.log
고정 문자열을 가정하고
grep -vF '90.192.142.138
PIX
Intrusion
' cisco.log-20151103.log
답변2
grep은 반드시 파이프의 입력이 필요하지 않으므로 다음을 수행할 수 있습니다.
grep -vE '90\.192\.142\.138|PIX|Intrusion' cisco.log-20151103.log
대문자 E는 정규식 모드를 활성화하며 이 경우 이스케이프 지점이 필요합니다.
답변3
grep -vE "90.192.142.138|PIX|Intrusion" cisco.log-20151103.log
답변4
$ grep -v -f exclude.list
$ cat exclude.list
90.192.142.138
PIX
Intrusion