回答:
これは組み込みコマンドで簡単に行えます。
sort。次のステップでこれが必要です。uniq -cます。各行の一意の発生をカウントします。同様の行が隣接していない場合、これは前にソートしなければ機能しませんでした。sort。これは、逆順(r)でソートされn、uniq出力の数値()解釈に基づいています。そうしないと、数値の前のスペースが間違った結果につながるため、数値オプションが必要です(詳細についてはGNU sortのヘルプを参照してください)。headます。コマンドは次のようになります。
sort test.txt | uniq -c | sort -rn | head -n 12
ここの出力には、実際の発生回数が含まれています。
行の生のリストのみを取得するには、出力をsed次のようにパイプします。
sort test.txt | uniq -c | sort -rn | head -n 12 | sed -E 's/^ *[0-9]+ //g'
I'm not there very often
I'm not there very often
Look at me!
Look at me!
Look at me!
Hello there!
Hello there!
Hello there!
Hello there!
Hello there!
Hello there!
最初のコマンドからの出力ですが、次から2のみを選択しheadます。
6 Hello there!
3 Look at me!
2番目のコマンドからの出力:
Hello there!
Look at me!
uniq。
sort -rn逆の順序でソートがソートフィールドとして番号を使用することにより、生成された各ラインの隣のuniq -c?私はそのような何かと思ったk1か、そのようなものが使用されるだろう
rが逆になり、nによって生成された数値を数値的に並べ替えuniqます 正確にはどういう意味k1ですか?
manして理解しようとしていましたが、-kソートするフィールドを選択するには何かを使用する構文を使用する必要があることを理解しました
cat your_file | logtop
ログファイルのようにファイルが常に成長している場合は、次を試してください。
tail -f your_log | logtop