SED求解!!!!

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
愤怒的阿狸
帖子: 48
注册时间: 2013-03-04 11:27

SED求解!!!!

#1

帖子 愤怒的阿狸 » 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???
按理说文本都一样,写法也没区别,所有规律也应该相同才对。。。
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: SED求解!!!!

#2

帖子 lilydjwg » 2013-10-23 19:05

没有复现你的结果。Linux 命令是区别大小写的,sed 的命令也是区分大小写的。请告诉我们你实现使用的命令是什么
头像
愤怒的阿狸
帖子: 48
注册时间: 2013-03-04 11:27

Re: SED求解!!!!

#3

帖子 愤怒的阿狸 » 2013-10-23 21:05

lilydjwg 写了:没有复现你的结果。Linux 命令是区别大小写的,sed 的命令也是区分大小写的。请告诉我们你实现使用的命令是什么
SED 'N;2D' 文本 啊,
2D可以换成,3D 4D 5D
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: SED求解!!!!

#4

帖子 lilydjwg » 2013-10-23 23:51

愤怒的阿狸 写了:
lilydjwg 写了:没有复现你的结果。Linux 命令是区别大小写的,sed 的命令也是区分大小写的。请告诉我们你实现使用的命令是什么
SED 'N;2D' 文本 啊,
2D可以换成,3D 4D 5D
哦抱歉,我的系统上没有 SED 这个命令。相信绝大部分人的系统上也没有。只有 sed。
ilinxiao
帖子: 19
注册时间: 2012-10-07 15:16
系统: Ubuntu
联系:

Re: SED求解!!!!

#5

帖子 ilinxiao » 2013-11-15 15:28

参照楼主说的试验了下,@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求解!!!!

#6

帖子 愤怒的阿狸 » 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是读取下一行然后连同本行一起执行后面的命令
回复