shell脚本编写 统计ip下的用户数
文件 ip.txt
192.168.0.1 zhangxc
192.168.0.1 zhangxc1
192.168.0.1 zhangxc3
192.168.0.2 zhangc
192.168.0.2 zhangc1
192.168.0.3 zhangc
192.168.0.3 zhangc
192.168.0.3 zhangxc
192.168.0.3 zhangxc
192.168.0.0 zhang
192.168.0.5 zhang
192.168.0.0 zhang
192.168.0.0 zhang
192.168.0.0 zhang2
要求输出如下
192.168.0.1 3
192.168.0.2 2
192.168.0.3 2
192.168.0.5 1
192.168.0.0 2
即ip所对应的用户数
求指导shell如何编写
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(13)
引用来自“zhailibao”的评论
192.168.0.0 用户数是2 192.168.0.3 用户数是2
[root
@localhost zhangxc]# sort -u ip.txt | awk '{ips[$1]++} END {for(ip in ips) print ip,ips[ip]}'
192.168.0.5 1
192.168.0.0 2
192.168.0.1 3
192.168.0.2 2
192.168.0.3 2
这个是正确的答案!谢谢Redraiment
192.168.0.3 4
192.168.0.0 4
192.168.0.1 3
192.168.0.2 2
192.168.0.5 1
没有uniq,同ip,同用户会多算。
不要uniq了,数组的下标是ip已经过滤完了
回复
如果你采用uniq,是不是吧用户忽略了呢
我要的是ip对应的用户数不是ip的重复数!!!你估计没有明白我的意思
回复
这个方法不用先uniq,它是采用数组的方式的
回复
先uniq,再awk,不就是你选的正确答案吗. (uniq前要先sort,这个是常识,所以没有明说)
谢谢,你的答案是我想要的