免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2722 | 回复: 8

sed 匹配下一行问题 [复制链接]

论坛徽章:
0
发表于 2010-05-31 18:27 |显示全部楼层
内容如下

  1. zone "test.com.hk" {
  2.         type slave;
  3.         file "test.com.hk.db";
  4.         masters {
  5.                 192.168.18.99;
  6.         };
  7. };
  8. zone "test2.com.hk" {
  9.         type slave;
  10.         file "test2.com.hk.db";
  11.         masters {
  12.                 192.168.18.99;
  13.         };
  14. };

复制代码
因没有空行分开,匹配是示了多一行了,

论坛徽章:
0
发表于 2010-05-31 18:31 |显示全部楼层
没看懂需求

论坛徽章:
0
发表于 2010-05-31 18:32 |显示全部楼层
我使用
sed -n -e "/zone \"test.com.hk\"/,/};/{N;p}" test
结果显示了

  1. zone "test.com.hk" {
  2.         type slave;
  3.      file "test.com.hk.db";
  4.         masters {
  5.                 192.168.18.99;
  6.         };
  7. };
  8. zone "test2.com.hk" {
复制代码
代使用了最后一个}; 加多了一个行,


};
zone "test2.com.hk" {
之间有空行分开
};

zone "test2.com.hk" {

像这样,我的指命就能 正常显示
我的效果

zone "test.com.hk" {
        type slave;
     file "test.com.hk.db";
        masters {
                192.168.18.99;
        };
};



问题如果没有空行分开是就不行了,所以特此请教。。。

论坛徽章:
0
发表于 2010-05-31 19:22 |显示全部楼层
1: sed -n -e "/zone \"test.com.hk\"/,/};/p" test 就行了,为什么要N?

2: 如果实在要N;可以先改动原文件 sed -i -e '/}/G' test
然后再执行你的语句。

论坛徽章:
0
发表于 2010-05-31 19:31 |显示全部楼层
  1. awk -v RS="};\n};" '/test.com/{print $0,RS}' file
复制代码

论坛徽章:
0
发表于 2010-05-31 19:47 |显示全部楼层
回复 4# 渣渣鸟


    lz加N是想匹配第二个“};”,既然第二个“};”行首没有空格,那么sed -n '/test.com.hk/,/^};/p' file应该就可以

论坛徽章:
0
发表于 2010-05-31 21:49 |显示全部楼层
回复 6# bbgg1983


    是的,你看明白我的意思了,
第二行的};,有一些前面有空格,有一些没有空格,所以我没有用^};,

不知道你有没有更好的方法。

论坛徽章:
0
发表于 2010-05-31 21:51 |显示全部楼层
回复 2# where27


    谢谢这位老兄,因我不小心发上去,要求还没有写,所以我后补上,

论坛徽章:
0
发表于 2010-06-01 09:16 |显示全部楼层
回复 8# luo118
  1. sed -n '/zone \"test.com.hk\"/,/};/{/};/N;p}' test
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2020中国数据库技术大会 限时8.5折

【架构革新 高效可控】2020年8月17日~19日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP