首页/系统/Linux 运维命令速查/sed -i 原地编辑文件
本包目录(613 条)
文件与目录76 条
文本处理77 条
网络命令82 条进程与作业69 条磁盘与文件系统51 条用户与权限44 条日志与排查40 条systemd 与服务42 条包管理34 条性能与监控48 条定时任务与计划50 条

sed -i 原地编辑文件

-i 直接修改文件内容:-i.bak 先留备份再改,批量处理多文件名时配合 find / xargs。

Linux 运维命令速查系统更新于 2026-10-12
用途就地修改文件(替换/删除/插入)
语法sed -i[.后缀] '脚本' 文件...
差异GNU 与 BSD/macOS 的 -i 用法不同

常用示例

常用示例
sed -i.bak 's/8080/9090/' app.conf      # 先备份为 app.conf.bak
sed -i 's/DEBUG/INFO/g' conf.d/*.conf
# 批量(文件多且名字复杂):
find /etc/myapp -name '*.conf' -print0 | xargs -0 sed -i 's/old/new/g'
sed -i 会生成新文件再替换:文件 inode 变化,硬链接断掉;对指向文件的软链接执行会替换掉链接本身。

易错点

  • 不留备份直接 -i 改生产配置,改错只能靠记忆回滚;规范做法 -i.bak 或先 cp
  • macOS/BSD 的 sed -i 必须带参数(sed -i ''),跨平台脚本注意两套语法

数据来源与参考

  • man 1 sed(GNU sed 手册)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌