如何解析 netstat 中的信息?

如何解析 netstat 中的信息?

如何从 的输出中提取以下内容netstat -anp

  • 删除IP地址
  • 远程端口
  • 本地应用程序名称
  • 本地端口
  • PID

我需要这些信息才能在我的 conky 中运行。它显示了一切,但 PID 号的最后一位丢失了。我不明白该sed命令。请帮忙。

命令如下:

netstat -anp | grep 'ESTABLISHED' | sed -r 's|.*192.[0-9.]+:([0-9]*)\s*([0-9.]+):([0-9]+)[^ESTABLISHED]+\ESTABLISHED ([0-9]*)[^/]+/([a-zA-Z0-9-]*)|\5 \2 \1 \3 \4|' | awk '{printf("%-14s %-15s %8s %6s %8s\n",$1,$2,$3,$4,$5)}' 

请您应该打开已建立的连接(例如,使用 firefox)以显示正确的命令输出。

答案1

问题出在 sed 模式的这一部分:

([0-9]*)[^/]+/

它捕获任意数量的数字 0..9,然后至少 1 个不是斜杠“/”的字符,然后是“/”。这是试图匹配一个字符串,例如

ESTABLISHED 2783/firefox

最初,它匹配2783,但随后必须删除最后一个数字 3,以符合不是斜杠

解决方法是将 替换+为 a *,以允许零匹配:

([0-9]*)[^/]*/

相关内容