GNU/Linux >> Linux の 問題 >  >> Linux

標準入力から 1 秒あたりの行数をカウントする Unix / Linux コマンドはありますか?

解決策 1:

pv あなたの命令です! P イペ V iewer は、通過するデータに関する統計を出力し、stdin を stdout に直接パイプするため、パイプラインのどこでも実行できます。例:

tail -f /var/log/nginx/access.log | pv --line-mode --rate > /dev/null

pv コマンドは、現在の 1 秒あたりの行数 (デフォルトは 1 秒あたりのバイト数) を stderr に出力します。これは、この特定のデータ ソース (Nginx の既定のログ ファイル) については、1 秒あたりの着信 Web 要求に相当します。カウントのみを気にするので、stdout を /dev/null にパイプします。 .次のようなオプションもあります:

  • -b (総行数),
  • --average-rate (開始以来の平均レート)、および
  • --timer (パイプの経過時間を追跡します)。

--line-modeと言わない場合 、バイトをカウントします。これはおそらくサーバー ログに必要なものではありませんが、他の場所で便利になる可能性があります。

最後のメモ:... | pv -lb > file.txt ... | tee file.txt | awk '{printf "\r%lu", NR}' によく似ています 、これも行を数えるのに便利ですが、 pv 呼び出しははるかに短いですが、出力はそれほどエキサイティングではありません — pv デフォルトでは毎秒更新されますが、その awk コマンドは継続的に更新されます。

解決策 2:

logtop を試してみるといいかもしれません ?

tail -f foobar.log |logtop

解決策 3:

watch -n 3 "wc -l logfile"

マニュアルページ

watch - プログラムを定期的に実行し、出力を全画面表示します。デフォルトでは、プログラムは 2 秒ごとに実行されます。 -n または --interval を使用して別の間隔を指定してください。


Linux
  1. Linuxコマンドラインでファイルから特定の行を削除する

  2. Linux でファイルの行数を数える方法 (wc および nl コマンドの例)

  3. 7 ファイルから重複行を削除する Linux Uniq コマンドの例

  1. Linuxのファイルから行、単語、文字を数える

  2. UNIX/Linux でファイルの行数を数える方法

  3. N行の入力を区切り記号で結合するLinux/Unixコマンド?

  1. LinuxのWcコマンド(行、単語、文字の数を数える)

  2. Linuxwcコマンド

  3. UNIX / Linux:10 の Netstat コマンドの例