分页: 1 / 1
SED求解!!!!
发表于 : 2013-10-22 22:08
由 愤怒的阿狸
一个文本
1
2
3
4
5
为什么 SED ‘N;2D’和SED‘N;4D’的时候,1和3是不输出的
而 SED‘N;3D’ 和SED‘N;5D’ 就输出了2和4???
按理说文本都一样,写法也没区别,所有规律也应该相同才对。。。
Re: SED求解!!!!
发表于 : 2013-10-23 19:05
由 lilydjwg
没有复现你的结果。Linux 命令是区别大小写的,sed 的命令也是区分大小写的。请告诉我们你实现使用的命令是什么。
Re: SED求解!!!!
发表于 : 2013-10-23 21:05
由 愤怒的阿狸
lilydjwg 写了:没有复现你的结果。Linux 命令是区别大小写的,sed 的命令也是区分大小写的。请告诉我们你实现使用的命令是什么。
SED 'N;2D' 文本 啊,
2D可以换成,3D 4D 5D
Re: SED求解!!!!
发表于 : 2013-10-23 23:51
由 lilydjwg
愤怒的阿狸 写了:lilydjwg 写了:没有复现你的结果。Linux 命令是区别大小写的,sed 的命令也是区分大小写的。请告诉我们你实现使用的命令是什么。
SED 'N;2D' 文本 啊,
2D可以换成,3D 4D 5D
哦抱歉,我的系统上没有 SED 这个命令。相信绝大部分人的系统上也没有。只有 sed。
Re: SED求解!!!!
发表于 : 2013-11-15 15:28
由 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'却没反映。很不理解这种结果的原因所在。
Re: SED求解!!!!
发表于 : 2013-11-24 20:09
由 愤怒的阿狸
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'却没反映。很不理解这种结果的原因所在。
据我理解N是读取下一行然后连同本行一起执行后面的命令