免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3596 | 回复: 4
打印 上一主题 下一主题

[文本处理] 如何删除多行 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-04-10 12:24 |只看该作者 |倒序浏览
在一个log文件中,log方式如下
2013 1..
   A
2013 2..
    xx
   B
   yy
2013 3..
   A
2013 4..

如何删除log中包含B中的两个时间中的所有log信息,即以下信息变为:

2013 1..
   A
2013 2..
2013 3..
   A
2013 4..

或者

2013 1..
   A
   A
2013 4..

论坛徽章:
0
2 [报告]
发表于 2013-04-10 12:39 |只看该作者
sed /2013\ 2/,/2013\ 3/d  log

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每月发帖之星
日期:2015-09-11 19:30:52IT运维版块每周发帖之星
日期:2015-09-11 19:20:31IT运维版块每日发帖之星
日期:2015-08-26 06:20:00每日论坛发贴之星
日期:2015-08-20 06:20:00IT运维版块每日发帖之星
日期:2015-08-20 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:15金牛座
日期:2014-05-04 16:58:09双子座
日期:2013-12-17 16:44:37辰龙
日期:2013-11-22 15:20:59狮子座
日期:2013-11-18 22:55:08射手座
日期:2013-11-12 10:54:26
3 [报告]
发表于 2013-04-10 14:00 |只看该作者
LZ把文本贴的稍微详细点。。。谢谢

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
4 [报告]
发表于 2013-04-10 14:07 |只看该作者
本帖最后由 yestreenstars 于 2013-04-10 14:39 编辑

根据我的观察,有日期的行都是以数字开头的,日志的内容都是以空格开头的(也有可能是\t)。
sed '/^[0-9]/{:1;N;/\n [^\n]*$/b1;/B/d;h;s/\n[^\n]*$//p;g;s/.*\n//;b1}'

对于这种结果,我提供以下两种方法:
  1. awk '/^ /{s=s?s"\n"$0:$0;next}s{if(s~/B/)s="";else print s}1'
复制代码
  1. sed '/^ /{:1;N;/\n [^\n]*$/b1;/B/s/.*\n//}'
复制代码
2013 1..
   A
   A
2013 4..

对于这种结果,我提供以下种方法:
  1. sed '/^[0-9]/{:1;N;/\n [^\n]*$/b1;/B/d;h;s/\n[^\n]*$//p;g;s/.*\n//;b1}'
复制代码
  1. awk '/^[0-9]/{if(s){if(s~/B/){s="";next}else print s}s=$0;next}{if(s)s=s"\n"$0;else print}END{print s}'
复制代码
@rucypli
你有看清LZ的要求吗?
如何删除log中包含B中的两个时间中的所有log信息

论坛徽章:
0
5 [报告]
发表于 2013-04-10 19:30 |只看该作者
回复 4# yestreenstars
很好用,谢谢


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP