【发布时间】:2021-07-11 17:41:36
【问题描述】:
有一个文件,其行如下:host ip page。你需要输出 10 个比较常见的 IP 地址。
我想解决一个小问题。 请指教,你觉得这个解决方案怎么样?
sort list|uniq -c|sort -r|head -n 10
比如我有源文件(list.txt):
localhost1 144.12.34.245 page1
localhost2 144.12.34.241 page2
localhost3 144.12.34.242 page3
localhost4 144.12.34.243 page4
localhost4 144.12.34.243 page4
localhost4 144.12.34.243 page4
localhost5 144.12.34.244 page5
localhost5 144.12.34.244 page5
localhost5 144.12.34.244 page5
localhost5 144.12.34.244 page5
同一个ip地址可以有不同的hosts和pages。它们由一个空格分隔。
例如:
(localhost5 144.12.34.244 page5, localhost5 144.12.34.244 第6页)
(localhost1 144.12.34.244 page5, localhost5 144.12.34.244 第6页)
(localhost5 144.12.34.244 page5, localhost5 144.12.34.144 第5页)
执行命令后得到结果:
4 localhost5 144.12.34.244 page5
3 localhost4 144.12.34.243 page4
1 localhost3 144.12.34.242 page3
1 localhost2 144.12.34.241 page2
1 localhost1 144.12.34.245 page1
几乎完美。 但我只想输出一个 IP 地址列表。没有主机和页面:
144.12.34.244
144.12.34.243
144.12.34.242
144.12.34.241
144.12.34.245
【问题讨论】:
-
您是否要求进行代码审查?那将是错误的网站。有什么不按您的意愿工作吗?你有问题吗?
-
@BenjaminW。很抱歉我没有很好地准备问题。我对我的问题做了一些修改。
-
您对
sed或awk满意吗? -
我建议
sed '...' list | sort | uniq -c | sort -r | sed '...' -
对于相同的主机名和 IP 地址组合,是否可以有不同的
pageX值? (localhost5 144.12.34.344 page5,localhost5 144.12.34.344 page6) 你能有不同的主机名和 IP 地址组合吗?具有多个 IP 地址的主机? (localhost5 144.12.34.344 page5,localhost5 144.12.34.144 page5) 如果任何答案是“是”,请修改您的示例输入以显示此类情况。添加与输入匹配的预期输出。我可以假设您想忽略主机名和页面列吗?列是否由单个空格分隔?顺便说一句:IP 地址字节