【进阶】04-老男孩教育-sed命令模式空间及保持空间命令

运维学习交流群-点我加群:598972270

一.模式空间与保持空间

首先回顾,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

h/H

g/G

x

【进阶】04-老男孩教育-sed命令模式空间及保持空间命令_第1张图片
sed 命令之H;G的执行过程.png

你可能感兴趣的:(【进阶】04-老男孩教育-sed命令模式空间及保持空间命令)