기본적으로 증가하는 로그 파일을 찾고 검색하고 추적하고 싶습니다.sed
필터 후. 테스트 tail -f
하기 위해 먼저 조합 sed
을 less
시도했지만 소용이 없었습니다 tail -f
.less +F
tail -f file | less +F
Ctrl-- +를 눌러 C꼬리 추적을 중지할 때까지 less가 실행되지 않습니다.less
옵션은-B -b 1
도움이 되지 않습니다.less +F -f <(tail -f file)
같은 행동을 보입니다.
내가 생각한 것보다 더 좋고 간단한 해결책을 아는 사람이 있다면 매우 감사하겠습니다.
답변1
직접 배관이 안되서 임시파일로 연결을 해보았습니다 tail -f
. 마침내 다음과 같은 결과를 얻었습니다sed
less +F
function lessx {
[ -f "$1" ] || { echo "First argument must be a file"; return 1; }
local tmpfile=$(mktemp /tmp/"$(basename "$1.XXX")")
[ -f "$tmpfile" ] || { echo '`mktemp` failed'; return 1; }
tail -f "$1" | stdbuf -i0 -o0 sed 's:\\\?\\n:\n:g' > "$tmpfile" &
less +F "$tmpfile"
kill %% # kill the tail pipeline, after less exits
rm "$tmpfile"
}
내가 원하는 것보다 더 복잡하기는 하지만 이 작업은 수행됩니다. 내 SunOS는 tail
이를 이해하지 못 하므로 파이프를 수동으로 --pid
종료합니다 .tail