以下是命令输出:
netstat -plten|grep 45678
tcp 0 0 :::45678 :::* LISTEN 0 129367622 109746/java
但是,我希望得到'109746'作为输出。
我试过了:
netstat -plten|grep 45678|awk ' {print$9}'
但是这个给出109746/java
作为输出;有什么办法,我可以用$9
来匹配一些正则表达式,这样我得到了所需的输出。
答案 0 :(得分:4)
除了空白之外,您可以告诉awk将/
视为字段分隔符。这样,java
被视为一个单独的字段,不包含在字段9中:
$ netstat -plten | awk -F'[ /]+' ' /45678/{print$9}'
109746
-F'[ /]+'
告诉awk使用空格,/
或这两者的任意组合作为字段分隔符。
此外,不需要在awk前面使用grep 45678
。在上文中,awk条件/45678/
选择包含45678
的行。