sed是什么
sed是一个非交互式的流编辑器。
- 所谓非交互式,是指使用sed只能在命令行下输入编辑命令来编辑文本,然后在屏幕上查看输出;
- 而所谓流编辑器,是指sed每次只从文件(或输入)读入一行,然后对该行进行指定的处理,并将结果输出到屏幕(除非取消了屏幕输出又没有显式地使用打印命令),接着读入下一行。整个文件像流水一样被逐行处理然后逐行输出。
工作流程
一图胜千言,先看图
sed有四个部分:
- input stream, 输入流
- output stream, 输出流
- pattern space, 模式空间,可以理解为工作区
- hold buffer. 缓冲区,可以理解为临时变量
重复以下步骤直到输入读取完毕
- 从输入读取到
模式空间
- 执行命令操作
模式空间
- 输出
模式空间
的内容 - 清理
模式空间
命令格式
sed -e [option] 'command' file
command 的格式构成
[addr]X[options]