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



命令输出如下:

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

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

我试着:

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

但是这个给出了109746/java作为输出;有没有办法,我可以用$9来匹配一些正则表达式,这样我就得到了想要的输出。

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

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

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

同样,在awk前面使用grep 45678也是不必要的。在上面,awk条件/45678/选择包含45678的行。

最新更新