对 netstat 命令结果进行更有效的排序方法

对 netstat 命令结果进行更有效的排序方法

我试图仅对与 Firefox 无关的 IP 地址进行排序,并将它们写入文件中。我最终得到了这个命令行,完成了工作,但我想知道是否有更好的方法。

netstat -antp | grep -E ?:80 | grep -v firefox > ipadress.txt &&  awk '{print $5}' ipadress.txt > ipadress1.txt

有没有办法通过删除 :80 端口来获得更干净的输出?我使用了,ipadress1.txt因为当我尝试覆盖它时它不起作用。

答案1

完成awk所有工作:

$ netstat -antp | awk '/:80/ && !/\/firefox/{print $5}'                                                           
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
151.101.129.69:80
67.132.183.24:80
91.189.89.144:80
151.101.129.69:80
:::*

解释

典型awk程序的结构如下:

/pattern/ {code to run if pattern matched}

在这个特定情况下,我们使用两种模式:我们寻找其中:80没有的字符串和行/firefox。这&&是逻辑与,这意味着匹配两个都左边和右边的模式。如果我们有匹配的行 - 执行代码块,它只打印第 5 个字段。

相关内容