output.log
次の内容を含むファイルがあります。
Thread started
Thread finished
Thread started
Thread finished
Thread started
Thread started
以下を使用して出力を監視します。
tail -f output.log
現在実行中のスレッド数を記録するコマンドを作成したいと思います。上記の場合、出力は次のようになります。
2 threads are running
grepを使用して何らかの方法で文字列インスタンスを記録する必要がありますか?
ベストアンサー1
計算に使用できますawk
。しかし、より複雑なものがない場合は、次のものを使用できます。
tail -f output.log | awk '/Thread started/{n++}/Thread finished/{n--} END { printf ("%d Threads are running\n", n)}' output.log
より良い方法は、watch
次のように使用することです。
watch -n.2 -x awk '/Thread started/{n++}/Thread finished/{n--} END { printf ("%d Threads are running\n", n)}' output.log
画面上部に表示されるすべての項目が-n.2
更新されます。0.2s