我怎样才能选择出现 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
谢谢你们! :)
答案1
如果你结合 Nicole Hamilton 的答案,gawk
你会得到(对于出现 4 次或更多次的行):
sort iplist.txt | uniq -c | gawk '$1>=4{print $2}'
执行四次:
sort iplist.txt | uniq -c | gawk '$1==4{print $2}'
将 更改4
为您感兴趣的数字。
答案2
假设列表位于名为的文件中iplist.txt
。尝试以下操作:
sort iplist.txt | uniq -d
运行后结果如下。我特意添加了第 3 个 IP 地址,192.168.1.28
以便您看到只有第 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$
答案3
尝试 4 次或更多:
awk '++A[$1]==4' file