加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式 – 如何打印出与grep的唯一匹配数?

发布时间:2020-12-14 06:29:00 所属栏目:百科 来源:网络整理
导读:假设我有数百万个数据包来查看,我想看到一个数据包发送到某个端口号的次数. 这里有一些包: 10:27:46.227407 IP 85.130.236.26.54156 139.91.133.120.60679: tcp 010:27:46.337038 IP 211.142.173.14.80 139.91.138.125.56163: tcp 010:27:46.511241 IP 211.
假设我有数百万个数据包来查看,我想看到一个数据包发送到某个端口号的次数.

这里有一些包:

10:27:46.227407 IP 85.130.236.26.54156 > 139.91.133.120.60679: tcp 0
10:27:46.337038 IP 211.142.173.14.80 > 139.91.138.125.56163: tcp 0
10:27:46.511241 IP 211.49.224.217.3389 > 139.91.131.47.6973: tcp 0

我想看看这里的第二个端口号:

60679,53163,6973等

所以我可以使用:

grep -c '.80:' output.txt

计数所有的时间端口80被使用.但是有没有办法显示所有使用的端口,以及在这个文件中找到多少次.像这样的东西,最好排序,我可以看到最常用到哪些端口:

.80: - 54513
.110: - 12334
.445: - 412
请参见 uniq -c.您将要拉出所需的位,排序结果,通过uniq管道,对输出进行排序.这样可能是:
egrep '.[0-9]+:' output.txt | sort | uniq -c | sort -nr

澄清:我在这里使用了grep,因为你不清楚你的output.txt格式是什么样的,但是你可能要通过cut或者awk来实际删除端口号.

编辑:要获取端口,您可以在一段时间内再次切割一次,然后再次在冒号上:

cut -d. -f10 < output.txt | cut -d: -f1

(或者十几种其他任何方式来完成同样的事情).这将给你一个未排序的端口列表.然后:

cut -d. -f10 < output.txt | cut -d: -f1 | sort | uniq -c | sort -nr

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读