一.模式空间与保持空间
首先回顾,sed命令执行流程参考:【吃饭的家伙】01-老男孩教育-三剑客-sed执行流程
模式空间(pattern space)和保持空间(hold space)是sed的两个存放数据的空间,主要特点如下:
数据默认读取到模式空间,我们通过各种命令输出或处理的一般都是模式空间的内容
模式空间的内容会在处理完这一行后清空,就是没读取1行,就会被清空1次
需要特定的命令才能操作(h,H,g,G,x)
这里存放的数据会永久保存(sed读取完文件后才会清空这里面的内容),所以这里可以用来做很多“有趣的事情”
二.操作命令及含义
P表示:pattern space
H表示:hold space
操作的命令 | 含义 | 方向 |
---|---|---|
h | 用当前模式空间的内容保持空间的内容 | P--->H,会清空H的内容 |
H | 先向保持空间中追加1回车,然后把当前模式空间内容到保持空间 | P--->>H,追加信息到H中 |
g | 用当前保持空间的内容模式空间的内容 | P<---H,会清空P的内容 |
G | 先向模式空间中追加1回车,然后把当前保持空间内容到模式空间 | P<<--H,追加信息到P中 |
x | 当前保持空间和模式空间的内容 | P<-->H |
网友评论