Command-Line
顯示列表的不同值和出現次數
我有一個程序在標準輸出上寫入一個字元串值列表,每行一個,我想實時顯示不同值的列表以及每個值的出現次數。
例如,從此輸出:
apple carrot pear carrot apple
我需要一個生成此輸出的命令(最好是實時更新):
apple: 2 carrot: 2 pear: 1
任何的想法?
為了擴展@Bratchley 在評論中所說的內容,如果您將程序的輸出列印到文件中,那麼您可以在終端中執行 then命令,通過包含如下標誌
watch
來獲得近乎實時的輸出視圖:-n
watch -n 0.1 "cat yourprograms.log | sort | uniq -c | sort -rn"
注意:“-n”標誌設置刷新間隔。‘watch’ 可以花費的最短時間是 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"