私のファイルにIPアドレスのリストがあります。
72.204.55.250
72.204.55.250
72.204.55.250
72.204.55.250
72.204.55.250
96.41.51.202
208.115.113.91
178.137.94.166
178.137.94.166
208.115.113.91
96.41.51.202
141.8.143.179
141.8.143.179
今、それらを分類してuniq -c
サービスに電話すると、次のような結果が得られます。
2 141.8.143.179
2 178.137.94.166
2 208.115.113.91
5 72.204.55.250
2 96.41.51.202
それでは、最も頻繁な順序()で並べ替えてみましょう。sort -rn
しかし、問題は、繰り返し回数が同じ場合にIPアドレスに基づいて降順に並べ替えることです。 IPアドレスでのみ機能するソートコマンドが見つかりました。
sort -rn -t . -k1,1 -k2,2 -k 3,3 -k4,4
しかし、上記のように、これを最初の列(繰り返し回数)と組み合わせて、次のような予想結果を得る方法がわかりません。
5 72.204.55.250
2 208.115.113.91
2 178.137.94.166
2 141.8.143.179
2 96.41.51.202
どうすればいいですか?助けてくれてありがとう。
ベストアンサー1
並べ替えが可能な場合安定したソート-s
たとえば、GNU sort と一緒に、またはオプションを使用すると、同値がある--stable
場合、ソートキーに関連付けられていないフィールドを持つ行は、そのフィールドごとにソートされませんが、同じ相対位置に保持されます。
$ sort -n -t. -k1,1 -k2,2 -k3,3 -k4,4 | uniq -c | sort -n -r -s
5 72.204.55.250
2 96.41.51.202
2 141.8.143.179
2 178.137.94.166
2 208.115.113.91