sed -i:命令行直接原地编辑文件
用 sed -i 在 Linux 上对单个或多个文件做查找替换,配合 -i.bak 保留备份。
执行 sed -i 's/旧/新/g' 文件 即可直接改写文件;用 sed -i.bak 's/旧/新/g' 文件 可先保留一份备份。
01命令
命令
$ sed -i 's/old-domain.com/new-domain.com/g' *.conf02作用说明
s/// 替换广为人知,但真正让 sed 从过滤器变成编辑工具的是 -i:它直接改写磁盘上的文件而不是输出到 stdout。GNU sed 允许给 -i 附加后缀(-i.bak),先保留原始文件——这是非交互编辑最接近“撤销”的手段。表达式还支持地址范围(sed -i '10,20s/x/y/'),也可以一次对多个文件批量修改配置。
03风险
!注意: 不带备份后缀的 sed -i 无法撤销——表达式写错会悄悄毁掉所有被处理的文件;另外 GNU 与 BSD sed 的 -i 语法不兼容。
04撤销
撤销
$ git checkout -- *.conf (or restore from the .bak created by sed -i.bak)05来源
- Sed — ArchWiki依据: Examples of GNU sed -i in-place editing and -i.bak backup extension usage
- sed(1P) — POSIX manual page依据: Documents the s/re/replacement/flags substitution, /g global flag, and address ranges
最后验证: 2026-09-17 · 分类: 文件与文件夹