免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2099 | 回复: 5

[文本处理] 看了一个sed帖子带出来的问题[以解决](在一楼重新编辑) [复制链接]

论坛徽章:
0
发表于 2014-07-25 16:52 |显示全部楼层
本帖最后由 ivorning 于 2014-07-25 17:21 编辑

[root@oracle tmp]# cat e_test.txt
1
2
3
4
5
6
[root@oracle tmp]# sed -e '1,2d' -e '1,2d' e_test.txt
4
5
6

我想我应该已经明白这个执行过程了
1、读入1,进入sed执行,满足第一个e中的1,2,开关开启,删掉1
2、读入2,进入sed执行,满足第一个e中的1,2,开关关掉,删掉2,此时第一个e中的1,2d已经被前两行带走开房了,后面的行都没有机会了
3、读入3,进入sed执行,此时命令中仅剩一个e,命令为1,2d,此时3进入执行,行号3>1,被判定为满足,所以执行删除3,由于3>2,所以开关在这一行就被关闭了,所以第二个e中的1,2d被3自己带走开房了
4、对于后面的456,sed中相当于没有命令了,所以就直接打印出来了

我自己又做了个实验
sed '1,2d;1,2d;1,2d' e_test.txt
结果是只显示5,6 与上面的理解不矛盾,就是多了个4把第三个1,2d带走开放这一步,4当然也因为部分满足1,2d(4>1),被删掉了~~

论坛徽章:
0
发表于 2014-07-25 17:05 |显示全部楼层
本帖最后由 ivorning 于 2014-07-25 17:22 编辑

请看一楼

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-08-24 06:20:00综合交流区版块每日发帖之星
日期:2015-10-14 06:20:00IT运维版块每日发帖之星
日期:2015-10-25 06:20:00IT运维版块每日发帖之星
日期:2015-11-06 06:20:00IT运维版块每日发帖之星
日期:2015-12-10 06:20:00平安夜徽章
日期:2015-12-26 00:06:302016猴年福章徽章
日期:2016-02-18 15:30:34IT运维版块每日发帖之星
日期:2016-04-15 06:20:00IT运维版块每日发帖之星
日期:2016-05-21 06:20:00综合交流区版块每日发帖之星
日期:2016-08-16 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-14 06:20:00
发表于 2014-07-25 17:07 |显示全部楼层
If the second address is a number less than (or equal to) the line matching the first address, then only the one line is matched

论坛徽章:
0
发表于 2014-07-25 17:09 |显示全部楼层
回复 3# expert1


     对于 'NUMBER,ADDR2' 这样的地址对,有且仅有一个范围与之匹配成功,就好像是一
    旦匹配成功了,sed就将该地址对从脚本中删除了,后续行没有匹配该地址对的机会。

    地址对就像非诚勿扰中的女生,一旦被一个流氓领走了,下一个流氓就没有机会了。

你好 刚才我又回头看了下 又发现了上面的一段话,这段话的意思是不是说,对于这种1,2的地址对 只要开关开启然后被关闭后,后续行就再也没有机会进来进行判断了?如果是这样那我就明白啥意思了

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
发表于 2014-07-25 17:37 |显示全部楼层
1、读入1,进入sed执行,满足第一个e中的1,2,开关开启,删掉1

严格意义上来说,读入第一行的时候,只判断1,不判断2,比如:
  1. seq 6 | sed -e '1,0d'
复制代码

论坛徽章:
0
发表于 2014-07-25 17:42 |显示全部楼层
回复 5# Shell_HAT


    是的 多谢HAT兄提出~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP