如何编写通用sed命令替换test.js中的IP与端口?
通用sed命令替换IP与端口(兼容占位符和实际值)
完整命令示例
# 定义目标IP和端口 IP=172.15.33.101 HTTP_PORT=32231 # 执行批量替换 sed -i -e "s/@@NODE_IP@@\|\b\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}\b/$IP/g" \ -e "s/@@NODE_PORT@@\|\b[0-9]\{1,5\}\b/$HTTP_PORT/g" test.js
正则逻辑说明
IP替换规则
正则表达式@@NODE_IP@@\|\b\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}\b会匹配两种内容:
- 明确的占位符
@@NODE_IP@@ - 符合IPv4格式的实际IP地址(通过
\b单词边界确保匹配完整的IP字符串,避免误替换其他包含IP片段的文本)
端口替换规则
正则表达式@@NODE_PORT@@\|\b[0-9]\{1,5\}\b会匹配两种内容:
- 明确的占位符
@@NODE_PORT@@ - 1-5位数字的端口号(覆盖合法端口范围1-65535,用
\b避免误替换更长数字串中的子部分)
优势说明
- 无需区分文件当前是占位符状态还是已填充实际值的状态,一次命令即可覆盖两种场景
- 合并两次sed调用为一次,提升执行效率
- 用正则精准匹配目标内容,减少误替换风险
内容的提问来源于stack exchange,提问作者Starbucks Admin
相关产品推荐
相关产品推荐

