tail -f a/b/c.log d/e/f.log
다음과 같은 로그를 기록합니다.
==> a/b/c.log <==
xxx
yyy
Exception happened 1
zzz
==> d/e/f.log <==
rrr
Exception happened 2
sss
다음과 같이 "Exception"이 포함된 줄을 선택하도록 명령을 변경하려면 어떻게 해야 합니까?
a/b/c.log: Exception happened 1
d/e/f.log: Exception happened 2
이 솔루션은 모든 Linux 명령을 사용할 수 있습니다.
답변1
당신이 가지고 있다면multitail
일단 설치되면 이를 사용하여 -E
특정 정규식과 일치하는 줄만 선택하고 --label
해당 줄 앞에 파일 이름을 붙일 수 있습니다. 예를 들어( -N 0
필요에 맞게 조정):
multitail --follow-all -N 0 --mergeall -E 'Exception' \
--label 'a/b/c.log: ' a/b/c.log --label 'd/e/f.log: ' d/e/f.log
액세스할 수 없는 경우 multitail
각 파일로 작업하고 다음 과 같은 tail -f
도구를 사용하여 출력을 사후 처리 할 수 있습니다 grep
.sed
awk
tail -f a/b/c.log | sed '/Exception/!d;s|^|/a/b/c.log: |' &
tail -f d/e/f.log | sed '/Exception/!d;s|^|/d/e/f.log: |'
또는
tail -f a/b/c.log | awk '/Exception/{print "a/b/c.log: " $0}' &
tail -f d/e/f.log | awk '/Exception/{print "d/e/f.log: " $0}'