一个文本
1
2
3
4
5
为什么 SED ‘N;2D’和SED‘N;4D’的时候,1和3是不输出的
而 SED‘N;3D’ 和SED‘N;5D’ 就输出了2和4???
按理说文本都一样,写法也没区别,所有规律也应该相同才对。。。
SED求解!!!!
- lilydjwg
- 论坛版主
- 帖子: 4258
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: SED求解!!!!
没有复现你的结果。Linux 命令是区别大小写的,sed 的命令也是区分大小写的。请告诉我们你实现使用的命令是什么。
- 愤怒的阿狸
- 帖子: 48
- 注册时间: 2013-03-04 11:27
Re: SED求解!!!!
SED 'N;2D' 文本 啊,lilydjwg 写了:没有复现你的结果。Linux 命令是区别大小写的,sed 的命令也是区分大小写的。请告诉我们你实现使用的命令是什么。
2D可以换成,3D 4D 5D
- lilydjwg
- 论坛版主
- 帖子: 4258
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: SED求解!!!!
哦抱歉,我的系统上没有 SED 这个命令。相信绝大部分人的系统上也没有。只有 sed。愤怒的阿狸 写了:SED 'N;2D' 文本 啊,lilydjwg 写了:没有复现你的结果。Linux 命令是区别大小写的,sed 的命令也是区分大小写的。请告诉我们你实现使用的命令是什么。
2D可以换成,3D 4D 5D
-
- 帖子: 19
- 注册时间: 2012-10-07 15:16
- 系统: Ubuntu
- 联系:
Re: SED求解!!!!
参照楼主说的试验了下,@lilydjwg 我用的都是小写:),跟楼主同样的试验文本12345每行一个数字,参照 http://coolshell.cn/articles/9104.html 的解释,sed的N命令是把偶数行纳入奇数行,我的理解是执行N命令后原文内容应该相当于第一行:1\n2,第二行3\n4,下面类似。可在删除行时只能用偶数行号来删除,比如sed 'N;2d'删除原文本中的1,2行,但是sed 'N;1d'执行后却没反映。类似的sed 'N;4d'删除3,4行;sed ‘N;3d'却没反映。很不理解这种结果的原因所在。
- 愤怒的阿狸
- 帖子: 48
- 注册时间: 2013-03-04 11:27
Re: SED求解!!!!
据我理解N是读取下一行然后连同本行一起执行后面的命令ilinxiao 写了:参照楼主说的试验了下,@lilydjwg 我用的都是小写:),跟楼主同样的试验文本12345每行一个数字,参照 http://coolshell.cn/articles/9104.html 的解释,sed的N命令是把偶数行纳入奇数行,我的理解是执行N命令后原文内容应该相当于第一行:1\n2,第二行3\n4,下面类似。可在删除行时只能用偶数行号来删除,比如sed 'N;2d'删除原文本中的1,2行,但是sed 'N;1d'执行后却没反映。类似的sed 'N;4d'删除3,4行;sed ‘N;3d'却没反映。很不理解这种结果的原因所在。