sed 的工作方式相当直接。命令行上的每个文件会依次打开与读取。如果没有文件,则使用标准输入,文件名“-”(单个破折号)可用于表示标准输入。
[many@avention Desktop]$ sed 's/hello/HELLO/' -
hello world 输入
HELLO world 输出
sed 读取每个文件,一次读一行,将读取的行放到内存的一个区域 -- 称之为模式空间(pattern space)。这就像程序语言里的变量一样:内存的一个区域在编辑命令的指示下可以修改,所有编辑上的操作都会应用到模式空间的内容。当所有操作完成后,sed 会将模式空间的最后内容打印到标准输出,再回到开始处,读取另一个输入行。
这一工作过程,举个例子,将The UNIX System 替代为 The UNIX Operating。
脚本 在 sed 脚本中的额命令改变了模式空间
s/Unix/UNIX
s/UNIX System/UNIX Operating System/
The Unix System 输入
模式空间
The Unix System
The UNIX System
The UNIX Operating System
The UNIX Operating System 输出