用于从 netstat 输出中过滤掉 PID 的 UNIX 表达式

UNIX expression to filter out PID from netstat output

下面是命令的输出:

netstat -plten|grep  45678
tcp        0      0 :::45678                    :::*                        LISTEN      0          129367622  109746/java

但是,我想得到‘109746’作为输出。

我试过了:

netstat -plten|grep  45678|awk ' {print}'

但是这个给出了 109746/java 作为输出;有什么办法,我可以使用 来匹配一些正则表达式,这样我就可以获得所需的输出。

您可以告诉 awk 将 / 除空白外还作为字段分隔符。这样,java 被认为是一个单独的字段,不包含在字段 9 中:

$ netstat -plten | awk -F'[ /]+' ' /45678/{print}'
109746

-F'[ /]+' 告诉 awk 使用空格、/ 或这两者的任意组合作为字段分隔符。

此外,awk 前面的grep 45678 也没有必要。在上面,awk 条件 /45678/ 选择包含 45678.

的行