免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: Nalternative
打印 上一主题 下一主题

【5楼解答的很详细,大家可以讨论下】sed 地址和模式匹配的问题 [复制链接]

论坛徽章:
0
1 [报告]
发表于 2011-06-28 19:49 |显示全部楼层
唉....只有看得份儿了...

论坛徽章:
0
2 [报告]
发表于 2011-06-29 10:03 |显示全部楼层
本帖最后由 南极雨 于 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

论坛徽章:
0
3 [报告]
发表于 2011-06-29 12:43 |显示全部楼层
回复 49# where27


好吧...理解方式不一样...
我坚持!

至于-n 我的理解也是不打印模式空间的内容。
suppress automatic printing of pattern space

多谢赐教!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP