사용 가능합니까 grep
연속 스트림 있습니까?
내가 의미하는 것은 일종의 tail -f <file>
명령이지만 grep
관심있는 줄만 유지하기 위해 출력이 있습니다.
나는 시도 tail -f <file> | grep pattern
했지만 끝났을 grep
때만 실행될 수있는 것처럼 보입니다 tail
.
답변
grep
BSD grep (FreeBSD, Mac OS X 등)을 사용할 때의 라인 버퍼링 모드를 켜십시오
tail -f file | grep --line-buffered my_pattern
기본적으로 플러시되므로 GNU grep (거의 모든 Linux에서 사용)에 대해서는이 작업을 수행 할 필요가 없습니다 (SmartOS, AIX 또는 QNX와 같은 다른 유닉스 계열의 경우 YMMV).
답변
나는 tail -f <file> | grep <pattern>
항상 .
grep이 끝날 때까지 기다리지 않고 기다릴 것입니다 (우분투를 사용하고 있습니다).
답변
문제는 grep이 일부 출력 버퍼링을 사용한다는 것입니다. 시험
tail -f file | stdbuf -o0 grep my_pattern
grep의 출력 버퍼링 모드를 unbuffered로 설정합니다.
답변
꼬리가 아닌 전체 파일 에서 일치 항목을 찾고 새 일치 항목을 기다리고 기다리려면 다음과 같이하십시오.
tail -c +0 -f <file> | grep --line-buffered <pattern>
-c +0
플래그는 출력을 시작해야 함을 말한다 0
바이트 ( -c
시작 (에서) +
파일을).
답변
대부분의 경우, 가능 tail -f /var/log/some.log |grep foo
하며 제대로 작동합니다.
실행중인 로그 파일에 여러 그렙을 사용해야하고 출력이없는 것을 발견하면 다음과 같이 --line-buffered
스위치를 중간 그렙 에 붙여야합니다 .
tail -f /var/log/some.log | grep --line-buffered foo | grep bar
답변
당신은이 답변을 향상으로 생각할 수 있습니다 .. 보통 나는 사용하고 있습니다
tail -F <fileName> | grep --line-buffered <pattern> -A 3 -B 5
파일 회전의 경우 -F가 더 좋습니다 (파일이 회전하면 -f가 제대로 작동하지 않음)
-A와 -B는 패턴 발생 직전과 직후에 라인을 얻는 데 유용합니다.이 블록은 점선 구분 기호 사이에 나타납니다.
하지만 저에게는 다음을 선호합니다
tail -F <file> | less
스트리밍 로그 내부를 검색하려는 경우 매우 유용합니다. 앞뒤로 깊게 쳐다 봐
답변
아무도 내 평소 이동을 제공하는 것을 보지 못했습니다.
less +F <file>
ctrl + c
/<search term>
<enter>
shift + f
ctrl + c
언제든지 파일을 중지하고 탐색 하는 데 사용할 수 shift + f
있으며 실시간 스트리밍 검색으로 돌아 가기 위해 사용할 수 있기 때문에 이것을 선호합니다 .
![](http://daplus.net/wp-content/uploads/2023/04/coupang_part-e1630022808943-2.png)