我坚持使用grep请告诉我一个正则表达式解决方案来获取第二行第二列中的数字
我试图仅为侦听端口获取pid
lsof -i:43458 |grep LISTEN
AND GOT
skype 2680 orangehrm 85u IPv4 17151 0t0 TCP *:43458 (LISTEN)
但据我所知,我还需要知道如何获取行
示例数据
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
skype 2680 orangehrm 85u IPv4 17151 0t0 TCP *:43458 (LISTEN)
skype 2680 orangehrm 86u IPv4 17152 0t0 UDP *:43458
答案 0 :(得分:2)
下面的awk命令将打印第二列if
该行必须包含字符串LISTEN
第二列必须包含一个或多个数字
lsof -i:43458 | awk '/LISTEN/ && $2 ~ /^[0-9]+$/{print $2}'
示例:强>
$ cat f
foo 123 LISTEN
foo bar LISTEN
$ awk '/LISTEN/ && $2 ~ /^[0-9]+$/{print $2}' f
123
答案 1 :(得分:2)