首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

关于sed工作原理的一个有关问题

2013-12-29 
关于sed工作原理的一个问题如:cat test 输出如下:1234567为什么sed Hx test 会得到如下这样的结果:1122

关于sed工作原理的一个问题
如:
cat test 输出如下:
1
2
3
4
5
6
7
为什么sed 'H;x' test 会得到如下这样的结果:

1
1
2
2
3
3
4
4
5
5
6
6
7

H在追加数据时是如何操作的?在追加数据到hold spance时,之前的hold spance是空的吗?
[解决办法]

引用
在追加数据到hold spance时,之前的hold spance是空的吗?

只有第一次H之前是空的

你可以用sedsed看看执行过程
./sedsed -d 'H;x' urfile

http://sedsed.sourceforge.net/
[解决办法]
默认的hold space 为 $
第一次执行H之后,$变成\n1$                #   \n为自动添加
x交换hold space和pattern space的内容,打印出
\n
1
第二次执行H之后,\n1$变成1\n2$ ,执行x之后,打印出
1\n
2
.
.
.
依次类推

热点排行