一意の値とリストの発生を表示します。

一意の値とリストの発生を表示します。

標準出力に文字列値のリストを1行に1つずつ作成するプログラムがありますが、各値が発生した回数とともに様々な値のリストをリアルタイムで表示したいと思います。

たとえば、次の出力から:

apple
carrot
pear
carrot
apple

この出力を生成するコマンドが必要です(リアルタイムで更新することをお勧めします)。

apple: 2
carrot: 2
pear: 1

どんなアイデアがありますか?

ベストアンサー1

アノテーションで@Bratchleyが言った内容を拡張するには、プログラムの出力をファイルとして印刷し、端末でthenコマンドを実行して、次のフラグを含む出力をwatchほぼリアルタイムで表示できます。 :-n

watch -n 0.1 "cat yourprograms.log | sort | uniq -c | sort -rn"

注:「-n」フラグは更新間隔を設定します。 「時計」の最小時間は0.1秒(または1/10秒)で、短くすることはできません。

出力例:

Every 0.1s: cat yourprograms.log | sort | uniq -c | sort -rn

      6 things
      4 mine
      3 dot
      1 below

埋め込みを使用すると、| sort -rnビューをより整列させることができます。sort -rnの出力を逆順に並べ替えます。uniq -c

最初の 10 件にのみ興味がある場合は、head次のコマンドを含めることができます。

watch -n 0.1 "cat yourprograms.log | sort | uniq -c | sort -rn | head"

おすすめ記事