Linux下如何获取Nginx运行的精确端口号(仅输出端口数值)
解决方法
这里有几种简洁的方式可以只提取端口号8060:
方法1:在原命令后追加列截取
直接在你现有命令的末尾加上cut -d " " -f1,利用空格分隔取第一列:
netstat -antup | grep nginx | awk '{print $4 "\t" $5 }' | cut -d ":" -f2 | cut -d " " -f1
方法2:用awk一步完成(更高效)
跳过多次管道,直接用awk拆分包含端口的字段:
netstat -antup | grep nginx | awk '{split($4, port_arr, ":"); print port_arr[2]}'
原理:split($4, port_arr, ":")会把$4(比如0.0.0.0:8060)按冒号拆分存入数组port_arr,port_arr[2]就是我们要的端口号。
或者用更简洁的awk写法,指定分隔符为冒号后取对应部分:
netstat -antup | grep nginx | awk -F ':' '{print $2}' | awk '{print $1}'
方法3:用sed正则匹配提取
利用正则直接匹配并提取端口数字:
netstat -antup | grep nginx | sed -E 's/.*:([0-9]+).*/\1/'
原理:正则.*:([0-9]+).*会定位冒号后的连续数字,\1引用这个匹配到的数字段,直接输出结果。
内容的提问来源于stack exchange,提问作者anand8398
相关产品推荐
相关产品推荐

