毎分ログファイルに追加される行数についていくつかの簡単な計算をしたいと思います。また、毎秒カウントを保存したいです。
私に必要なのは、毎秒更新されるリストで、次のコマンドの出力です。
watch -n1 'wc -l my.log'
「watch」コマンドの「アップデート」を一覧表示する方法は?
答え1
-t
スイッチを使用してwatch
ヘッダーを印刷しないことがあります。しかし、これでも画面が消去されるので、単純なシェルループを使用する方が良いでしょう。
while sleep 1; do
wc -l my.log
done
1つの利点は、簡単に別のコマンド(たとえばdate
)を追加したり、出力をパイプしてsed
フォーマットを再指定できることです。ちなみに、ループ内で交換するとエラーで自動的に終了します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'