sed中怎么批量修改应用配置中所有被硬编码的数据库连接端口

陌强吖_4614

陌强吖_4614

2026-08-13

568人浏览

原创

关键在于精准替换、不破坏配置且可回退:先用 grep 定位含端口的文件,再按 jdbc url、yaml、ini 等格式选用适配正则的 sed 命令,强制 -i.bak 备份并小范围验证。

sed中怎么批量修改应用配置中所有被硬编码的数据库连接端口

直接用 sed 批量改硬编码的数据库端口,关键不是“能不能换”,而是“换得准、不伤配置、可回退”。端口常出现在 JDBC URL、YAML 键值、INI 配置或 shell 变量里,不同格式需不同处理策略。

先精准定位含端口的文件和行

别一上来就全局扫目录。先确认哪些文件真有硬编码端口:

  • 查所有可能含 :3306 或 :5432 的配置文件:grep -rl ':3306\|:5432' ./configs/
  • 只对被 grep 确认过的文件操作,避免误改无关文件:sed -i.bak 's/:3306/:3307/g' $(grep -rl ':3306' ./configs/)
  • 若目录结构深,用 find 限定类型:find ./env -name "*.yml" -o -name "*.properties" -o -name "*.conf" | xargs grep -l ':3306'

按配置格式选替换写法

端口常嵌在复杂字符串中,分隔符和转义必须匹配上下文:

AI Undetect
AI Undetect

AI Undetect是一款用于检测并改写 AI 生成文本的反检测式文本处理工具。

下载
  • JDBC URL 类型(如 jdbc:mysql://localhost:3306/db):用 | 分隔,避开斜杠干扰:sed -i.bak 's|:3306|:3307|g' app.properties
  • YAML/JSON 键值(如 port: 3306 或 "port": 3306):加空格和冒号锚定,防误替数字:sed -i.bak 's/port:[[:space:]]*3306/port: 3307/g' config.yml
  • 带变量或注释的行(如 # db.port=3306 或 DB_PORT=3306):用 -E 支持扩展正则,只改非注释行:sed -i.bak -E 's/^(DB_PORT|db\.port)[[:space:]]*=[[:space:]]*3306/\1=3307/g' .env

强制备份 + 小范围验证

端口改错会导致服务起不来,一步都不能跳过:

  • 所有 -i 操作必须带 .bak 后缀:sed -i.bak 's/:3306/:3307/g' *.properties —— 自动生成 app.properties.bak
  • 改前先试输出效果:sed 's/:3306/:3307/g' test.conf | grep port,确认只动了目标行
  • 先灰度改一个环境目录(如 ./staging/),启动服务验证连通性,再推 ./prod/

避免跨标签或跨字段误替换

端口号可能是其他字段的一部分(如版本号 1.3306.0、IP段 192.168.3306.1),要加边界保护:

  • 用单词边界 \b(需 -E):sed -i.bak -E 's/\b3306\b/3307/g' config.ini
  • 或限定前后字符(如冒号、等号、斜杠后):sed -i.bak 's/:[[:space:]]*3306/:3307/g' *.yml
  • XML 或 JSON 中更谨慎:只换明确标签内值,例如 sed -i.bak 's/<port>[^/<port>3307/g' db.xml</port></port>

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3930

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3373

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2513

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

6090

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

5722

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3353

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2865

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

3079

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

297

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Perl 入门教程
Perl 入门教程

共29课时 | 31.2万人学习