tail -f grep을 통해 파이프하고 파일로 출력하지 않고 콘솔로 출력합니다.

tail -f grep을 통해 파이프하고 파일로 출력하지 않고 콘솔로 출력합니다.

다음 명령을 사용하고 있습니다

tail -f /mydir/myfile |  grep "searchterm" >> outfile

그것 없이는 잘 작동 -f하지만 -f필요한 것은 파일에 아무것도 기록되지 않습니다. 콘솔에 다음을 출력하면 됩니다.

tail -f /mydir/myfile |  grep "searchterm"

파일에 올바르게 쓰도록 명령을 받으려면 어떻게 해야 합니까?

답변1

GNU가 있는 경우grep:

tail -f /mydir/myfile |  grep --line-buffered "searchterm" >> outfile

이렇게 하면 모든 줄이 작성되지만 성능이 저하됩니다.

아니면 더 많은 출력이 나올 때까지 기다리세요. 프로세스를 종료하려면 해당 tail프로세스를 종료하면 종료하기 전에 버퍼를 grep플러시해야 합니다.

답변2

grep이 출력을 버퍼링하여 그렇지 않은 것처럼 보이게 합니까? 노력하다:

tail -f /mydir/myfile | grep --line-buffered "searchterm" >> outfile

관련 정보