たとえばここで、4回以上表示されたIPを選択するにはどうすればよいですか?
入力ファイルは
192.168.1.28
192.168.1.100
192.168.1.31
192.168.101.2
192.168.1.31
192.168.11.02
192.168.1.31
192.168.1.28
192.168.1.28
192.168.1.31
192.168.21.31
192.168.1.28
192.168.1.31
次に、この出力を取得したいと思います。
192.168.1.28
192.168.1.31
AWKの使用が推奨されます
皆さん、ありがとうございました! :)
ニコールハミルトンの答えとgawk
を組み合わせると、次のようになります(4回以上出現する行の場合)。
sort iplist.txt | uniq -c | gawk '$1>=4{print $2}'
正確に4回行います:
sort iplist.txt | uniq -c | gawk '$1==4{print $2}'
変更 4
興味のある番号に。
iplist.txt
という名前のファイル内のリストを想定しましょう。これを試して:
sort iplist.txt | uniq -d
実行すると次のようになります。 IPアドレス192.168.1.28
の3番目のオカレンスを意図的に追加したので、2 またはそれ以上回発生する行のみが出力にリストされ、重複する各行は次のように表示されます。一度。
bash-4.1$ cat iplist.txt
192.168.1.28
192.168.1.100
192.168.1.31
192.168.101.2
192.168.11.02
192.168.1.31
192.168.21.31
192.168.1.28
192.168.1.28
bash-4.1$ sort iplist.txt | uniq -d
192.168.1.28
192.168.1.31
bash-4.1$
4回以上お試しください:
awk '++A[$1]==4' file