输出出现 2 次及以上的项目

输出出现 2 次及以上的项目

我怎样才能选择出现 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

相关内容