用于从netstat输出

时间:2015-09-14 19:28:47

标签: unix awk grep netstat unix-socket

以下是命令输出:

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

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

我试过了:

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

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

1 个答案:

答案 0 :(得分:4)

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

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

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

此外,不需要在awk前面使用grep 45678。在上文中,awk条件/45678/选择包含45678的行。