$ sed [参数选项] [脚本命令] 文件名
命令 功能
a\ 在当前行后添加一行或多行。多行时除最后一行外,每行末尾需用“\”续行
c\ 用此符号后的新文本替换当前行中的文本。多行时除最后一行外,每行末尾需用"\"续行
i\ 在当前行之前插入文本。多行时除最后一行外,每行末尾需用"\"续行
d 删除行
h 把模式空间里的内容复制到暂存缓冲区
H 把模式空间里的内容追加到暂存缓冲区
g 把暂存缓冲区里的内容复制到模式空间,覆盖原有的内容
G 把暂存缓冲区的内容追加到模式空间里,追加在原有内容的后面
l 列出非打印字符
p 打印行
n 读入下一输入行,并从下一条命令而不是第一条命令开始对其的处理
q 结束或退出sed
r 从文件中读取输入行
! 对所选行以外的所有行应用命令
s 用一个字符串替换另一个
g 在行内进行全局替换
w 将所选的行写入文件
x 交换暂存缓冲区与模式空间的内容
y 将字符替换为另一字符(不能对正则表达式使用y命令)
参数
-p print
-d delete
= 打印匹配行的行号
-n 取消默认的完整输出,只要需要的
-e 允许多项编辑
-i 修改文件内容
-r 不需要转义
注意:& 符号在sed命令中代表上次匹配的结果
// 打印 3-9 行
sed -n '3,9p' filename
// 打印包含 str 字符的行
sed -n '/str/p' filename
// 打印包含"start_num"的行到包含"end_num"的行之间的行
sed -n '/start_num/,/end_num/p' filename
// 打印包含 str 字符的行号
sed -n '/str/=' filename
// 用 distStr 替换 srcStr
sed -i 's/srcStr/distStr/g' filename
// 用 distStr 替换 srcStr 并放在另一个文件中
sed 's/srcStr/distStr/g' srcFilename > targetFilename
// 每行的行首添加 str 字符
sed 's/^/str&/g' filename
// 每行的行尾添加 str 字符
sed 's/$/&str/g‘ filename