当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 6 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 一个sed命令的疑惑,麻烦达人解释一下
帖子发表于 : 2008-11-27 17:48 

注册: 2006-11-09 21:06
帖子: 59
地址: 深圳
送出感谢: 0 次
接收感谢: 0 次
此sed命令是删除指定字符串行后面五行数据(包含本身),语句如下:
代码:
$ cat test
... ...
test
1
2
3
4
5
... ...

$ sed  -n $'/test/{n;n;n;n;n;b;}\np' test
... ...
... ...

其他地方都可以看明白,就是语句 $'/test/{n;n;n;n;n;b;}\np' 前面那个 $ 是什么意思??
我晓得是p是打印输出,但是最后那个 \np 是什么意思???
麻烦各位达人解释一下,小菜找了半天资料看晕了还是看不出个所以然。 :em20 :em20


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 一个sed命令的疑惑,麻烦达人解释一下
帖子发表于 : 2008-11-28 0:59 

注册: 2008-09-10 21:06
帖子: 104
送出感谢: 0 次
接收感谢: 0 次
只能给你解释一部分,我也刚刚接触这个命令。选项 -n 会让sed只打印那些匹配模式的行.
末尾的n是大概意思是读取模式空间的下一行,什么是模式空间我也不懂,man中有关于n的说明: Read/append the next line of input into the pattern space.
选项p是打印
/test/{n;n;n;n;n;b;}这种写法我是第一次遇到,也不知道,麻烦后来人解释一下 :em06


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 一个sed命令的疑惑,麻烦达人解释一下
帖子发表于 : 2008-11-28 15:28 

注册: 2006-11-09 21:06
帖子: 59
地址: 深圳
送出感谢: 0 次
接收感谢: 0 次
你说的那些我都晓得……………… 还是谢谢了。
主要是:前面那个 $ 是什么意思??
p是打印输出(与 -n 一起用),但是最后那个 \np 是什么意思??? :em20


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 一个sed命令的疑惑,麻烦达人解释一下
帖子发表于 : 2008-11-28 16:32 
头像

注册: 2007-07-20 22:15
帖子: 896
送出感谢: 0 次
接收感谢: 0 次
sed不常用。。。 :em06


shell懂一点。。。
echo $'/test/{n ; b ;} \n p p \n p'
sed -n $'/test/{n ; b ;} \n p p \n p' test
sed -n $'/test/{n ; b ;} \n p \n p \n p \n p' test

和sed空间的布局有关。。。

再加点

a=$'/test/{n ; b ;} \n p \n p \n p \n p'
sed -n "$a" test

test
代码:
34
342
2434
#rer
R#
   R##
test
    test



test


_________________
发言并不是一种义务,最喜欢的回答是不知道
两个手指点击,居然默认就是鼠标中键功能
右上角是中键,右下角是左键
Grub真小,才512B
零度电子书(Unix&Linux)
http://books.05sun.com/downlist/s_62_3.html
win7恢复能力不如xp,ubuntu相对较稳定。。。待机恢复起来似乎。。。


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 一个sed命令的疑惑,麻烦达人解释一下
帖子发表于 : 2008-11-30 16:24 

注册: 2006-11-09 21:06
帖子: 59
地址: 深圳
送出感谢: 0 次
接收感谢: 0 次
折腾了n久,得到一个答案:是bash的引用展开。
代码:
$ sed  -n $'/test/{n;n;n;n;n;b;}\np' test

等同于:
代码:
sed  -n '/test/{n;n;n;n;n;b};p' test

:em20 :em20 :em20


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 一个sed命令的疑惑,麻烦达人解释一下
帖子发表于 : 2008-12-07 10:12 

注册: 2008-03-31 15:58
帖子: 5
送出感谢: 0 次
接收感谢: 0 次
sed '/test/{N;N;N;N;N;d}' test 就可以了.尽可能简单易懂.


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 6 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译