tail을 사용하여 로그 파일을 보려고하는데 -f
다음 문자열을 포함하는 모든 줄을 제외하고 싶습니다.
"Nopaging the limit is"` and `"keyword to remove is"
다음과 같이 하나의 문자열을 제외 할 수 있습니다.
tail -f admin.log|grep -v "Nopaging the limit is"
하지만 어떻게 내가 중 하나 포함하는 라인을 제외 할 string1
이상을 string2
.
답변
grep을 사용하여 여러 줄을 필터링하는 두 가지 예 :
이것을 넣으십시오 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 'Nopaging the limit is' -e 'keyword to remove is'
-F
정규식 대신 리터럴 문자열로 일치
-v
일치를 반전
-e
여러 검색 패턴 허용 (모두 리터럴 및 반전)
답변
또 다른 옵션은 제외 목록을 만드는 것입니다. 이는 제외 할 항목의 목록이 길 때 특히 유용합니다.
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
답변
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"