按重复次数排序
我有一个如下所示的文件:
192.168.2.2 150.25.45.7 8080
192.168.12.25 178.25.45.7 50
192.168.2.2 142.55.45.18 369
192.168.489.2 122.25.35.7 8080
192.168.489.2 90.254.45.7 80
192.168.2.2 142.55.45.18 457
我编了所有数字。
我需要根据第一个ip的重复次数对所有这些文件进行排序。因此,理想情况下,输出应如下所示:
192.168.2.2 8080 369 457 3
192.168.489.2 8080 80 2
192.168.12.25 50 1
所以:第一个 ip、与第一个 ip 一致的所有端口以及重复次数。
我一直在尝试使用 sort 命令和 awk,但我不想做额外的工作,并且可能会错过其他一些简单的解决方案。
有什么想法吗?谢谢 :)
I have a file that looks like this:
192.168.2.2 150.25.45.7 8080
192.168.12.25 178.25.45.7 50
192.168.2.2 142.55.45.18 369
192.168.489.2 122.25.35.7 8080
192.168.489.2 90.254.45.7 80
192.168.2.2 142.55.45.18 457
I made up all the numbers.
I need to sort all these files according to the number of repetitions of the first ip. So the output would ideally look like this:
192.168.2.2 8080 369 457 3
192.168.489.2 8080 80 2
192.168.12.25 50 1
So: first ip, all the ports that were in lines with that first ip, and the number of repetitions.
I've been trying to play with the sort command and awk but I don't want to do extra work and maybe be missing out on some other straightforward solution.
Any idea? Thanks :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
Perlish 的答案看起来像这样。
输出:
A Perlish answer would look something like this.
Output:
Perl 方式:
输出:
A Perl way:
output:
另一个 Perl 解决方案:
输出:
Another Perl solution:
Output:
此行应该可以为您完成工作:
用您的示例测试
this line should do the job for you:
test with your example
这是一个主要依赖 awk 和 sort 的管道:
Here's a pipeline relying mainly on awk and sort:
GNU awk 4:
GNU awk 4: