标题: pattern space 和 hold space 的概念 [打印本页] 作者: beyes 时间: 2012-1-30 01:04 标题: pattern space 和 hold space 的概念 sed 是个流编辑器,它每次从文件(或 输入)中读入一行,然后对改行进行指定处理,并将结果输出,然后继续读入下一行,处理,输出,如此反复,直到没有再需要处理的内容。
下图是一个工作原理说明图:
[attach]171[/attach]
图中有两个关于“空间“的概念:pattern space 和 hold space 。
其中,pattern space 是真正的工作场所,它就像一条流水线,当 sed 从输入中读入一行内容时,会将这些内容放在此处,然后再到脚本文件中读取处理命令对所读入内容进行处理。
hold space 是个字串处理的暂存区域,或者说是一个临时用途的缓冲区。
因此,基于上述功能,也有人形象的将 pattern space 和 hold space 比喻为:
pattern space相当于车间sed把流内容在这里处理。
hold space相当于仓库,加工的半成品在这里临时储存。