如何从终端命令行打印正则表达式匹配组值?
我正在尝试使用
回显正在运行的端口的进程IDlsof -n -i4TCP:$PORT | grep LISTEN
但这会输出一系列详细信息
node 1234 myname 12u IPv6 0xf1c950b487699d0 0t0 TCP *:irdmi (LISTEN)
我需要单独回显1234
,以便我可以使用kill
命令终止该PID。
我使用了grep -E,但我无法打印捕获组。任何帮助是极大的赞赏。
答案 0 :(得分:2)
您可以使用awk:
lsof -n -i4TCP:$PORT | awk '/LISTEN/{print $2}'
/LISTEN/
会在行中有LISTEN
时执行此操作,而$2
将是输入中的第二个字段,即您的进程ID。