shell脚本编写 统计ip下的用户数

发布于 2021-11-24 21:14:00 字数 531 浏览 753 评论 13

文件 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(13

陌上芳菲 2021-11-28 00:39:54

引用来自“zhailibao”的评论

awk '{ips[$1]++} END{for(ip in ips) print ip,ips[ip]}' ip.txt
192.168.0.5 1
192.168.0.0 4
192.168.0.1 3
192.168.0.2 2
192.168.0.3 4

坏尐絯 2021-11-28 00:39:52

192.168.0.0 用户数是2 192.168.0.3 用户数是2

命硬 2021-11-28 00:39:52

[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

回忆凄美了谁 2021-11-28 00:39:51
cat ip.txt |awk '{print $1}'|sort|uniq -c|sort -rn  |awk '{print $2"t"$1}'

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

清欢 2021-11-28 00:39:46

没有uniq,同ip,同用户会多算。

飘然心甜 2021-11-28 00:39:45

不要uniq了,数组的下标是ip已经过滤完了

复古式 2021-11-28 00:39:45

回复
如果你采用uniq,是不是吧用户忽略了呢

倚栏听风 2021-11-28 00:39:43

我要的是ip对应的用户数不是ip的重复数!!!你估计没有明白我的意思

离去的眼神 2021-11-28 00:37:04

回复
这个方法不用先uniq,它是采用数组的方式的

彩扇题诗 2021-11-27 23:28:07

回复
先uniq,再awk,不就是你选的正确答案吗. (uniq前要先sort,这个是常识,所以没有明说)

牵你的手,一向走下去 2021-11-27 22:43:23
awk '{ips[$1]++} END{for(ip in ips) print ip,ips[ip]}' ip.txt
192.168.0.5 1
192.168.0.0 4
192.168.0.1 3
192.168.0.2 2
192.168.0.3 4

平生欢 2021-11-27 07:38:19

谢谢,你的答案是我想要的

凯凯我们等你回来 2021-11-25 00:31:40
sort -u ip.txt | awk '{a[$1]++} END{for(i in a)print i,a[i]}'

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文