sed实例分析(二)--G和H的用法

一、示例文件及需求:

cat file

11111111

2222222

3333333

反序显示

二、sed处理及结果:

sed '1!G;h;$!d'

3333333

2222222

11111111

三、命令说明:

g G 复制/附加保持空间的内容到模式空间

h H 复制/附加模式空间的内容到保持空间

四、命令执行流程:

执行第一行,保存第一行保持空间,清除模式空间

执行第二行,保存第二行+第一行到保持空间,清除模式空间

执行第三行,保存第三行+第二行+第一行到保持空间,清除模式空间

COMM:代表命令,PATT:代表patternspace的内容,HOLD代表保持空间的内容,其他为sed输出的内容

PATT:11111111 <------Cycle1

HOLD:

COMM:1!G

COMM:h

HOLD:11111111

COMM:$!d

PATT:

PATT:2222222 <-------Cycle2

COMM:1!G

PATT:2222222\n11111111

COMM:h

HOLD:2222222\n11111111

COMM:$!d

PATT:

PATT:3333333 <---------Cycle3

COMM:1!G

PATT:3333333\n2222222\n11111111

COMM:h

HOLD:3333333\n2222222\n11111111

COMM:$!d

OUT:3333333\n2222222\n11111111

PATT:

 

 

 

猜你喜欢

转载自tiro-li.iteye.com/blog/1901680