You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻求awk单命令行逻辑优化:匹配指定IP提取TCP端口及状态

优化后的端口提取命令

直接替换原有脚本中的管道部分,以下是满足需求的完整命令:

declare -a busy_ports=($(grep -v "local_address" --no-filename "/proc/net/tcp" "/proc/net/tcp6" | awk -F ':' '$1 ~ /^(845DA8C0|00000000)$/ {split($2, ps, / /); print ps[1] ps[2]}' | sort -u))

关键逻辑说明

  • 限定本地IP匹配:通过$1 ~ /^(845DA8C0|00000000)$/直接过滤出本地IP为845DA8C0(192.168.93.132)或00000000(0.0.0.0)的行,无需后续额外过滤。
  • 精准提取拼接:
    • 用-F ':'将local_address字段(原$2)按冒号分割,$1是本地IP十六进制,$2包含端口十六进制和状态字段(原$4)。
    • 用split($2, ps, / /)把$2按空格拆分,ps[1]是端口部分,ps[2]是状态值,直接拼接输出即可得到00160A这类格式。
  • 高效去重排序:保留原有的sort -u实现端口+状态组合的去重。

额外提示

如果不需要处理IPv6条目,可以去掉/proc/net/tcp6参数,减少不必要的文件读取;若需适配IPv6的特定IP,只需修改正则中的匹配值即可。

内容的提问来源于stack exchange,提问作者OscarAkaElvis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 10:12:42