답변:
이것을 넣으십시오 filename.txt
:
abc
def
ghi
jkl
문자열의 토큰 사이에 파이프가있는 -E 옵션을 사용하는 grep 명령 :
grep -Ev 'def|jkl' filename.txt
인쇄물:
abc
ghi
괄호로 둘러싸인 토큰 사이에 파이프가있는 -v 옵션을 사용하는 명령 :
egrep -v '(def|jkl)' filename.txt
인쇄물:
abc
ghi
grep -Fv -e def -e jkl
더 빠릅니다!
grep -vF $(pgrep myprocess)
grep -Fv -e 'Nopaging the limit is' -e 'keyword to remove is'
-F
정규식 대신 리터럴 문자열로 일치
-v
일치를 반전
-e
여러 검색 패턴 허용 (모두 리터럴 및 반전)
grep -v
인스턴스와 정규 표현식의 인위적 요구 사항을 모두 피하는 유일한 방법입니다 (다중 문자열을 별도의 인수로 명확하게 지정할 수 있음). 그냥 ... 모든 것을 포함 할 수있는 문자열을 스크립트에서 프로그램이 정규 표현식을 구성 상상
또 다른 옵션은 제외 목록을 만드는 것입니다. 이는 제외 할 항목의 목록이 길 때 특히 유용합니다.
vi /root/scripts/exclude_list.txt
이제 제외하려는 항목을 추가하십시오.
Nopaging the limit is
keyword to remove is
이제 grep을 사용하여 파일 로그 파일에서 줄을 제거하고 제외되지 않은 정보를 봅니다.
grep -v -f /root/scripts/exclude_list.txt /var/log/admin.log
-v
함께 사용할 수 있다는 것을 몰랐 습니다 -f
(또는 후자가 존재한다는 것을).
grep -v -f <(gen_exclusions.sh) /var/log/admin.log
egrep -v "Nopaging the limit is|keyword to remove is"
tail -f admin.log|grep -v -E '(Nopaging the limit is|keyword to remove is)'
다음과 같이 일반 grep을 사용할 수 있습니다.
tail -f admin.log | grep -v "Nopaging the limit is\|keyword to remove is"
그립은 연결될 수 있습니다. 예를 들면 :
tail -f admin.log | grep -v "Nopaging the limit is" | grep -v "keyword to remove is"
grep -v -e def -e jkl
... 이럴가 명확 방법