简介
sed(stream editor,流编辑器),本质是一个面向字符流的非交互式文本编辑器。功能强大,可以用几行代码完成复杂的编辑任务。
工作原理
sed维护了两个缓冲区:
- 模式空间(the active pattern space)
- 保持空间(the auxiliary hold space)
- 从输入流读入第一行,移除换行符,放到pattern space
- 执行命令,命令前可由地址筛选
- 除非使用-n选项,默认会打印pattern space的内容到 output stream,加上被移除的换行符。
- 开始下个循环,回到1 读取下一行,直到所有行处理完成。
常用基本命令
命令 | 说明 |
---|---|
s | 替换 |
d | 删除模式空间,并会读取下一行 |
n | 读取下一行,会替换掉原模式空间的行 |
p | 打印 |
a | 追加 |
i | 插入 |
高级命令
命令 | 说明 |
---|---|
D | 只删除多行模式空间的第一行,不会读到新的内容 |
N | 读取新的行,添加到模式空间现有内容之后 |
P | 多行打印,只打印第一行 |
h,H | 模式空间的内容,复制或追加到保持空间 |
g,G | 保持空间的内容,复制或追加到模式空间 |
x | 交换模式空间和保持空间的内容 |