免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5932 | 回复: 13

[文本处理] sed的-e参数一处疑问 [复制链接]

论坛徽章:
1
卯兔
日期:2013-12-09 08:47:37
发表于 2012-11-30 00:29 |显示全部楼层
本帖最后由 mingming_song 于 2012-11-30 00:45 编辑

# cat test
111111
222222
333333
444444
555555
666666
777777
888888
999999

紧接着我想测试-e的使用,所以使用如下
#  sed -e '2,3d' -e '2,4d' test
111111
555555
666666
777777
888888
999999
后来自己闲的没事,改了下上面的命令
#  sed -e '2,3d' -e '2,3d' test
111111
555555
666666
777777
888888
999999


问题来了,两条命令的结果一模一样,于是我追踪了sed的工作过程,如下
#  ./sedsed -d --hide=hold  -e '2,3d' -e '2,4d' test
PATT:111111$
COMM:2,3 d
PATT:111111$
COMM:2,4 d
PATT:111111$
111111
PATT:222222$
COMM:2,3 d
PATT:333333$
COMM:2,3 d
PATT:444444$
COMM:2,3 d
PATT:444444$
COMM:2,4 d
PATT:555555$
COMM:2,3 d
PATT:555555$
COMM:2,4 d
PATT:555555$
555555
PATT:666666$
COMM:2,3 d
PATT:666666$
COMM:2,4 d
PATT:666666$
666666
PATT:777777$
COMM:2,3 d
PATT:777777$
COMM:2,4 d
PATT:777777$
777777
PATT:888888$
COMM:2,3 d
PATT:888888$
COMM:2,4 d
PATT:888888$
888888
PATT:999999$
COMM:2,3 d
PATT:999999$
COMM:2,4 d
PATT:999999$
999999



再来
#
[root@song ~]#  ./sedsed -d --hide=hold  -e '2,3d' -e '2,3d' test
PATT:111111$
COMM:2,3 d
PATT:111111$
COMM:2,3 d
PATT:111111$
111111
PATT:222222$
COMM:2,3 d
PATT:333333$
COMM:2,3 d
PATT:444444$
COMM:2,3 d
PATT:444444$
COMM:2,3 d
PATT:555555$
COMM:2,3 d
PATT:555555$
COMM:2,3 d
PATT:555555$
555555
PATT:666666$
COMM:2,3 d
PATT:666666$
COMM:2,3 d
PATT:666666$
666666
PATT:777777$
COMM:2,3 d
PATT:777777$
COMM:2,3 d
PATT:777777$
777777
PATT:888888$
COMM:2,3 d
PATT:888888$
COMM:2,3 d
PATT:888888$
888888
PATT:999999$
COMM:2,3 d
PATT:999999$
COMM:2,3 d
PATT:999999$
999999


各位也看到了,执行过程和结果都是一样,可是我就不明白了,那个颜色一样的部分是相同的执行过程,没什么说的,都好理解,但是不同的就是那个橙色高亮的那部分,在使用-e '2,3d' -e '2,4d'的时候能删除第444444行我能理解,但是为什么-e '2,3d' -e '2,3d'也能对444444这行起作用?求大神解释下-e执行前后命令的原理,我觉得这题可能对于理解sed的模式空间执行命令的一个过程是个不错的范例,可惜自己不太懂,坐等大神解释~

后来和一些人讨论还发现了一个问题,如果上面的命令继续比如-e '2,3d' -e '2,3d' -e '2,3d'会发觉又多处理了一行,这个规律存在,但是我无法解释~~

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-06-23 06:20:00
发表于 2012-11-30 02:29 |显示全部楼层
也想知道答案

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
发表于 2012-11-30 03:03 |显示全部楼层

论坛徽章:
11
CU十二周年纪念徽章
日期:2013-10-24 15:41:342015年辞旧岁徽章
日期:2015-03-03 16:54:15丑牛
日期:2015-01-14 10:36:40技术图书徽章
日期:2015-01-12 15:46:11白羊座
日期:2014-11-14 09:35:36狮子座
日期:2014-10-30 13:18:49巳蛇
日期:2014-10-11 12:52:08子鼠
日期:2014-09-28 14:11:06双鱼座
日期:2014-04-22 13:05:48午马
日期:2014-02-11 17:58:002015年迎新春徽章
日期:2015-03-04 09:55:28
发表于 2012-11-30 11:47 |显示全部楼层
回复 3# yinyuemi


    原来楼上大牛早就解释过楼主的疑问,哈哈!

论坛徽章:
1
卯兔
日期:2013-12-09 08:47:37
发表于 2012-12-02 09:33 |显示全部楼层
本帖最后由 mingming_song 于 2012-12-02 09:34 编辑

回复 4# 刺客阿地


    嗯,是的,之前我也才知道,后来看了下,那个帖是精华啊,yinyuemi和黑哥都好膜拜的说~~

论坛徽章:
11
CU十二周年纪念徽章
日期:2013-10-24 15:41:342015年辞旧岁徽章
日期:2015-03-03 16:54:15丑牛
日期:2015-01-14 10:36:40技术图书徽章
日期:2015-01-12 15:46:11白羊座
日期:2014-11-14 09:35:36狮子座
日期:2014-10-30 13:18:49巳蛇
日期:2014-10-11 12:52:08子鼠
日期:2014-09-28 14:11:06双鱼座
日期:2014-04-22 13:05:48午马
日期:2014-02-11 17:58:002015年迎新春徽章
日期:2015-03-04 09:55:28
发表于 2012-12-03 10:54 |显示全部楼层
回复 5# mingming_song

HI, HI,楼主,你这个头像表情好萌,哈哈哈
   

论坛徽章:
1
卯兔
日期:2013-12-09 08:47:37
发表于 2012-12-03 19:00 |显示全部楼层
回复 6# 刺客阿地

哈,这是《我叫MT》动画里的那头牛,因为我也是WOWer嘛,比较喜欢这个角色~
   

论坛徽章:
11
CU十二周年纪念徽章
日期:2013-10-24 15:41:342015年辞旧岁徽章
日期:2015-03-03 16:54:15丑牛
日期:2015-01-14 10:36:40技术图书徽章
日期:2015-01-12 15:46:11白羊座
日期:2014-11-14 09:35:36狮子座
日期:2014-10-30 13:18:49巳蛇
日期:2014-10-11 12:52:08子鼠
日期:2014-09-28 14:11:06双鱼座
日期:2014-04-22 13:05:48午马
日期:2014-02-11 17:58:002015年迎新春徽章
日期:2015-03-04 09:55:28
发表于 2012-12-04 10:06 |显示全部楼层
回复 7# mingming_song


    哈哈,童心未眠啊,很少看动画了。相互学习,多多交流哈!

论坛徽章:
1
卯兔
日期:2013-12-09 08:47:37
发表于 2012-12-06 08:22 |显示全部楼层
回复 8# 刺客阿地

必须的
   

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
发表于 2012-12-06 08:58 |显示全部楼层
童心,顶!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP