원격 서버에서 임의의 시간 내에 몇 번이나 foo bar
나타나는지 /var/log/foo.log
보려고하지만 지금까지 시도한 것은 효과가 없습니다.
나는 tailing을 시작한 지 얼마나 지 났는지 추적하는 데 사용하는 타이머 스크립트를 이미 가지고 있으며 /var/log/foo.log
, 이제 foo bar
tailed 출력에 몇 번이나 나타 났는지 알 수있는 방법을 원합니다 .
Google을 검색했지만 결과의 첫 10 페이지에서 관련 항목을 찾지 못했습니다.
실망스러운 결과로 시도한 것은 다음과 같습니다.
## works on local machine, but doesn't work as expected on remote
tail -f /var/log/foo.log | grep foo\ bar | sed '='
## works on local, but not remote
tail -f /var/log/foo.log | grep foo\ bar | cat -n -
## works on local, but not remote
tail -f /var/log/foo.log | grep foo\ bar | awk -F'\n' '{printf "[%d]> ", NR; print $1}'
나는 ~처럼 행동하는 sed 스크립트를 작성하려고 시도했지만 그로 tail -f
제한되지 않았습니다.
노트
원격 서버는 이전 버전의 coreutils를 실행하고 있으며 업그레이드는 옵션이지만 원하는 솔루션 이 아닙니다 .
--line-buffered
옵션을 사용해보십시오grep
. 또는tail -f ... | awk '/foo bar/{print ++n, $0}'