命令输出如下:
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
的行。