当前位置: 首页 > news >正文

《每日一命令03:sed——批量替换从未如此简单》

📖 先唠两句

大家好啊,我是阿垚。

欢迎来到《每日一命令》第03期。

上期聊了awk——按列处理文本的神器。今天聊另一个文本处理三剑客之一:

sed

如果说grep是“找”,awk是“分析”,那sed就是“改”。

🤔 你是不是也这么干过?

  • 要修改100个配置文件里的IP地址,一个个打开,一个个改?😫

  • 要把一个2GB的SQL文件里的表名批量替换,编辑器直接卡死?

  • 要删除文件中的所有空行或注释行,手动删到眼花?

这些场景,sed都能一行搞定。

🔧 sed是什么?

sed =Stream Editor(流式编辑器)。

核心特点:非交互式、批量处理、一行命令搞定全文修改。

你不用打开文件,不用手动翻页,不用一个个替换。sed直接在你的命令行里完成所有修改。

📝 最常用的5种姿势

1. 基础替换

bash

sed 's/旧文本/新文本/' file.txt

把每行第一个匹配的旧文本换成新文本。

2. 全局替换(整行所有匹配)

bash

sed 's/旧文本/新文本/g' file.txt

g(global),替换一行中所有匹配的文本。

3. 直接修改文件(危险!)

bash

sed -i 's/旧文本/新文本/g' file.txt

-i表示直接修改原文件。⚠️强烈建议先备份!

4. 只修改指定行

bash

sed '3,5s/旧/新/g' file.txt

只修改第3到第5行。

5. 删除行

bash

sed '/匹配内容/d' file.txt

删除包含指定内容的行。比如删除所有空行:

bash

sed '/^$/d' file.txt

🚀 进阶技巧(高手必看)

替换并自动备份

bash

sed -i.bak 's/旧/新/g' file.txt

修改前自动生成file.txt.bak备份文件。强烈推荐!✨

一次执行多个替换

bash

sed -e 's/旧1/新1/g' -e 's/旧2/新2/g' file.txt

使用其他分隔符

bash

sed 's|/旧路径/|/新路径/|g' file.txt

当替换内容包含/时,可以用|#做分隔符,避免转义。

在文件开头/末尾添加内容

bash

sed -i '1i\第一行内容' file.txt # 开头 sed -i '$a\最后一行内容' file.txt # 末尾

💡 真实场景

场景1:批量修改Nginx配置中的IP

bash

sed -i 's/192.168.1.100/10.0.0.1/g' /etc/nginx/conf.d/*.conf

一条命令改完所有配置文件。🎉

场景2:删除配置文件中的注释行

bash

sed -i '/^#/d' config.ini

场景3:给SQL文件中的表名加前缀

bash

sed -i 's/user/tmp_user/g' dump.sql

场景4:把日志文件中的日期格式从2026-04-16改为20260416

bash

sed -i 's/-//g' log.txt

⚠️ 小贴士

参数含义使用场景
s/旧/新/替换最常用
g全局替换一行中多次匹配
-i直接修改文件正式修改(先备份!)
-i.bak修改并备份推荐写法
数字指定行范围只改某几行
d删除行删除空行或注释
1i/$a首行插入/末尾追加添加内容

🔜 下期预告

《每日一命令04:find——文件查找你只知道用find . -name?》

评论区分享你最常用的sed命令。(•̀ᴗ•́)و

——阿垚,一个踩过2万次坑的“老”IT

http://www.cnnetsun.cn/news/1941162.html

相关文章:

  • 终极Windows系统优化:Win11Debloat免费去臃肿工具完全指南
  • Java八股之JVM内存结构
  • 终极冒险岛游戏编辑器:5分钟快速上手完整指南
  • 告别设备束缚!这款跨平台漫画神器让你随时随地畅享阅读乐趣
  • 终极OBS背景移除插件:如何免费实现专业级AI抠像效果
  • 告别残留:多环境视角下彻底卸载Jupyter Notebook的完整指南
  • 如何轻松获取国家中小学智慧教育平台电子课本:tchMaterial-parser完整指南
  • 网盘下载革命:8大平台直链解析工具完全指南
  • 3步解锁Python智能体建模:用Mesa轻松模拟复杂系统
  • 避坑指南:Unity 2022升级后,ShaderGraph特效不生效?可能是URP管线设置错了
  • 如何在现代Windows系统上完美运行经典DirectDraw老游戏:DDrawCompat实战指南
  • 终极兼容方案:让Windows 7用户也能运行最新版Blender的完整指南
  • 【SLAM建图与导航仿真实战】(一)- 从零构建机器人URDF模型与Gazebo集成
  • 终极指南:让Mem Reduct内存清理工具说中文的完整方案
  • STM32 MPU缓存配置避坑指南:何时开启CACHE与BUFFER?
  • TMS320C28x DSP编程实战:手把手教你玩转累加器ACC与乘除运算(附避坑指南)
  • STM32 PVD实战:从阈值设定到掉电紧急处理的完整指南
  • 别再被Revit坐标系绕晕了!手把手教你搞懂项目基点、测量点与共享坐标系的实战关系
  • 深入解析Ultrascale FPGA中ODELAYE3与IDELAYCTRL的协同仿真策略
  • aidegen实战指南:一键生成AOSP项目的IDE配置,提升Java与C/C++开发效率
  • Qwen3Guard-Gen-WEB新手教程:从零开始,搭建属于自己的内容审核AI
  • Navicat无限试用重置:Mac用户免费使用专业数据库工具的终极指南
  • 5分钟掌握网页视频下载:VideoDownloadHelper终极指南
  • Qwen3.5-9B-AWQ-4bit
  • Element el-select 选择器进阶应用与性能优化指南
  • 5G网络切换不掉线:手把手教你读懂RRC测量配置里的门道(附Log分析)
  • Bebas Neue字体实战指南:三步解决标题设计难题,掌握专业级开源字体应用
  • TransCAD 6.0 闪退别慌!手把手教你打补丁并搞定波士顿路网的最短路径分析
  • 无需高配电脑!Ollama部署Phi-3-mini-4k-instruct轻量级模型教程
  • ANIMATEDIFF PRO功能体验:批量生成、镜头运动模拟等高级技巧揭秘