분당 로그 파일에 추가되는 줄 수에 대한 몇 가지 간단한 계산을 수행하고 싶습니다. 또한 초당 카운트를 저장하고 싶습니다.
나에게 필요한 것은 매초 업데이트되는 목록으로 다음 명령의 출력입니다.
watch -n1 'wc -l my.log'
"watch" 명령의 "업데이트"를 목록으로 출력하는 방법은 무엇입니까?
답변1
-t
스위치를 사용하여 watch
헤더를 인쇄하지 않을 수 있습니다 . 그러나 이렇게 해도 여전히 화면이 지워지므로 간단한 쉘 루프를 사용하는 것이 더 좋습니다.
while sleep 1; do
wc -l my.log
done
한 가지 장점은 쉽게 다른 명령(예: date
)을 추가하거나 출력을 파이프하여 sed
형식을 다시 지정할 수 있다는 것입니다. 그런데 루프 내에서 교체하면 error 로 자동 종료됩니다 sleep 1
.wc
답변2
이것은 오래된 질문이지만 매우 간단한 대답을 찾았습니다.
watch -n1 'wc -l my.log | tee -a statistics.log'
이는 wc
1초마다 실행되며 그 결과를 Statistics.log 파일에 추가하고 화면에 표시합니다.
따라서 연속된 줄을 나타내는 숫자로 가득 찬 파일이 생성됩니다 my.log
.
답변3
이 작업을 수행하는 스크립트를 만들 수 있습니다. 나는 내 전화를 걸어 keep
(계속 이렇게) bin
경로에 올려 놓았습니다.
이것은 내 스크립트입니다.
#!/bin/bash
echo "Repeating command $* every second"
while sleep 1; do
"$@"
done
답변4
다음을 시도해 보십시오:
watch -n1 'wc -l my.log >> statistics.log'