【发布时间】:2023-01-25 01:00:03
【问题描述】:
如果我执行下面的评论,结果将是这样的8060 0.0.0.0
网络统计-antup | grep nginx |awk '{print $4 "\t" $5 }' |剪切-d“:”-f2
但我希望结果是这样的8060
【问题讨论】:
标签: shell
如果我执行下面的评论,结果将是这样的8060 0.0.0.0
网络统计-antup | grep nginx |awk '{print $4 "\t" $5 }' |剪切-d“:”-f2
但我希望结果是这样的8060
【问题讨论】:
标签: shell
不确定命令的原始响应是什么,但只是再次切断响应是一种方式
netstat -antup | grep nginx |awk '{print $4 " " $5 }' | cut -d ":" -f2 | cut -d " " -f1
【讨论】:
解构您提供的命令,netstat -antup 打印这些信息:
$ netstat -antup
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:8060 0.0.0.0:* LISTEN XYZ/nginx
...
你只需要“8060”,这是 nginx 正在监听的端口。
下一部分很好。 grep nginx |awk '{print $4}' 给你相应的本地地址。您不需要 " " $5 部分,因为外国地址与此处无关。
中间结果应如下所示:
$ netstat -antup | grep nginx | awk '{print $4}'
127.0.0.1:8060
现在端口是“:”之后的最后一部分。请注意,IPv6 地址也包含“:”。所以我建议剪掉最后一个而不是第二个。 您可以这样做,方法是还原输出、剪切第一位并再次还原:
$ netstat -antup | grep nginx | awk '{print $4}' | rev | cut -d":" -f1 | rev
8060
等瞧。所需的输出
【讨论】: