当前位置: 技术问答>linux和unix
关于sed工作原理的一个问题
来源: 互联网 发布时间:2017-05-07
本文导语: 如: 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是空的吗? | 只有第一次H...
如:
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是空的吗?
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 space 为 $
第一次执行H之后,$变成n1$ # n为自动添加
x交换hold space和pattern space的内容,打印出
n
1
第二次执行H之后,n1$变成1n2$ ,执行x之后,打印出
1n
2
.
.
.
依次类推
第一次执行H之后,$变成n1$ # n为自动添加
x交换hold space和pattern space的内容,打印出
n
1
第二次执行H之后,n1$变成1n2$ ,执行x之后,打印出
1n
2
.
.
.
依次类推