跳转到内容
命令速查text-processing

sed:按规则转换文本

使用编辑脚本筛选和替换文本,并可在保留备份的前提下修改原文件。

状态
已审阅
难度
进阶
风险
会改变系统
平台
linux · busybox

按规则读取、筛选和转换文本。默认把结果写到标准输出;只有使用原地编辑选项或重定向时才修改文件。

Terminal window
sed [选项] '编辑脚本' [文件...]
Terminal window
sed -n '1,20p' -- "$HOME/practice/note.txt"
sed 's/旧内容/新内容/g' -- "$HOME/practice/note.txt"
sed -i.bak '2c\新的第二行内容' -- "$HOME/practice/note.txt"

前两条只输出结果;第三条原地修改并先生成 .bak 备份。

-i 会改变文件,错误规则可能批量破坏内容。先去掉 -i 预览结果,再使用非空备份后缀;重定向回同一输入文件也会在 sed 读取前截断文件。

GNU 与 BusyBox 都提供基本替换和 -n,但 -i 的备份后缀语法、扩展正则选项及部分命令存在差异。面向 BusyBox 时应先查看设备上的 sed --help 并用副本验证。