- 论坛徽章:
- 0
|
本帖最后由 南极雨 于 2011-06-29 10:07 编辑
晕,看了好几天...
郁闷...
ss,黑哥解释的很到位,我来总结一下,欢迎尽情地拍砖了!!希望你动作优雅一点,
d 命令删除模式空间 ( d Delete pattern space. Start next cycle.cycle循环的意思,)Delete pattern space 啥意思啊?只要有模式空间就删除?!!!我觉得是这么个意思 看下面几个例子:
[root@center www.rmgnetworks.com]# seq 6 | sed -n -e '1,2p' -e '1,2p'
1
1
2
2
p 打印当前模式空间的内容(p Print the current pattern space.)....这个不用解释,只是相对d而言的,这里我用了 " -n " 是为了不打印3行以后的东西.
[root@center www.rmgnetworks.com]# seq 6 | sed -n -e '1,2d' -e '1,2p'
3
这里p命令发挥的淋漓尽致了... 执行第二个-e的时候,读如第三行,1,2不匹配,但模式空间里有内容啊,总得显示出来吧.? (到这儿你要拍砖我也认了...)不只是p命令,其他的也一样.接着往下看:
[root@center www.rmgnetworks.com]# seq 6 | sed -e '1,2d' -e '1,2p'
3
3
4
5
6
所以,只要模式空间里有内容, p 就会打印出来.
[root@center www.rmgnetworks.com]# seq 6 | sed -e '1,2d' -e '1,2d'
4
5
6
同理,d也是一样,只要模式空间里有了,就会删除.
然后再来看看这个,做个比较:
[root@center www.rmgnetworks.com]# seq 6 | sed -e '1,2d' -e '1,3d'
4
5
6 |
|