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

如何在Bash中从文本文件提取动态端口号?

可靠提取动态端口号的Shell命令方案

针对Forwarded port XXXXX格式的行

如果原文件中存在以Forwarded port 开头、后跟端口号的行,可使用以下命令提取:

  • grep 实现:

    grep -o 'Forwarded port [0-9]*' originalfile.txt | grep -o '[0-9]*' > newfile.txt
    

    逻辑:先匹配包含目标前缀和数字的行,再单独提取其中的数字部分。

  • sed 实现:

    sed -n 's/^Forwarded port \([0-9]*\)$/\1/p' originalfile.txt > newfile.txt
    

    逻辑:精准匹配以Forwarded port 开头、仅后跟数字的行,捕获数字并输出。


针对The port is XXXXX and it will expire on...格式的行

这行上下文更明确,推荐优先使用以下方案:

  • grep 实现:

    grep -o 'The port is \([0-9]*\) and it will expire' originalfile.txt | grep -o '[0-9]*' > newfile.txt
    
  • sed 实现:

    sed -n 's/.*The port is \([0-9]*\) and it will expire.*/\1/p' originalfile.txt > newfile.txt
    

    逻辑:匹配包含完整目标上下文的任意行,捕获中间的端口数字并输出,完全不依赖行号位置。


以上命令的核心优势是基于文本内容匹配而非固定行号,只要原文件中的上下文格式不变,就能稳定提取端口号,避免行号变动导致的提取失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 18:57:02