免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: kkshaq
打印 上一主题 下一主题

[文本处理] sed如何根据需求截取区间内容(工作需要)求大神指导 [复制链接]

论坛徽章:
28
15-16赛季CBA联赛之八一
日期:2016-02-22 19:10:4215-16赛季CBA联赛之深圳
日期:2016-12-01 10:34:0415-16赛季CBA联赛之新疆
日期:2016-12-07 10:24:2915-16赛季CBA联赛之同曦
日期:2016-12-15 12:06:43CU十四周年纪念徽章
日期:2016-12-18 13:03:4415-16赛季CBA联赛之吉林
日期:2017-01-03 15:52:2515-16赛季CBA联赛之辽宁
日期:2017-01-04 14:58:2415-16赛季CBA联赛之辽宁
日期:2017-01-15 09:42:512016科比退役纪念章
日期:2017-02-06 17:21:50黑曼巴
日期:2017-02-10 15:46:1215-16赛季CBA联赛之上海
日期:2017-03-18 10:14:5415-16赛季CBA联赛之青岛
日期:2017-03-18 22:00:44
21 [报告]
发表于 2016-08-09 13:17 |只看该作者
回复 20# kkshaq
  1. head file |cat -A
复制代码

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
22 [报告]
发表于 2016-08-09 13:30 |只看该作者
假设以"真"空行分段。
  1. sed ':n;/^---\|Start and End Time/,/^$/{$!N;/\n$/!{$!bn};/Share[^\n]*Total[^\n]*\n.\|Start Time:/b};d' urfile
复制代码
  1. awk -v RS='' -v ORS='\n\n' -F '\n' 'NF>3 && $NF !~ /Share.*Total Value/' urfile
复制代码

论坛徽章:
1
2015亚冠之浦和红钻
日期:2015-05-26 14:37:09
23 [报告]
发表于 2016-08-09 15:59 |只看该作者
回复 19# moperyblue


能不能一步一步的解释一下代码啊,我看了好久没看懂!!反应不够快啊
sed -r '/Start and/,/End Time/{/^\s+End Time/G};/-/{:a;$!N;/\n\s*$/!{$!ba};s/\n/&/5;t};d'


sed -r '/Start and/,/End Time/{/^\s+End Time/G}’这部的作用是啥啊?




后面的/-/{:a;$!N;/\n\s*$/!{$!ba};s/\n/&/5;t};d是什么意思呢。。希望能够解释一下!谢谢


论坛徽章:
0
24 [报告]
发表于 2016-08-09 20:28 |只看该作者
egrep -B 3 "[1-9]+" file
可以试试我这个行不?

论坛徽章:
0
25 [报告]
发表于 2016-08-09 20:34 |只看该作者
egrep -B 3 "[1-9]+" file  


试试我的能达到你想要的结果吗?!!!!

论坛徽章:
13
程序设计版块每日发帖之星
日期:2016-06-29 06:20:00每日论坛发贴之星
日期:2016-08-14 06:20:00操作系统版块每日发帖之星
日期:2016-08-14 06:20:00每日论坛发贴之星
日期:2016-08-13 06:20:00数据库技术版块每日发帖之星
日期:2016-08-13 06:20:00程序设计版块每日发帖之星
日期:2016-08-13 06:20:00IT运维版块每日发帖之星
日期:2016-08-13 06:20:00每日论坛发贴之星
日期:2016-08-12 06:20:00数据库技术版块每日发帖之星
日期:2016-08-12 06:20:00程序设计版块每日发帖之星
日期:2016-08-12 06:20:00操作系统版块每日发帖之星
日期:2016-08-12 06:20:00综合交流区版块每日发帖之星
日期:2016-08-09 06:20:00
26 [报告]
发表于 2016-08-09 21:20 |只看该作者
学习了~~

论坛徽章:
28
15-16赛季CBA联赛之八一
日期:2016-02-22 19:10:4215-16赛季CBA联赛之深圳
日期:2016-12-01 10:34:0415-16赛季CBA联赛之新疆
日期:2016-12-07 10:24:2915-16赛季CBA联赛之同曦
日期:2016-12-15 12:06:43CU十四周年纪念徽章
日期:2016-12-18 13:03:4415-16赛季CBA联赛之吉林
日期:2017-01-03 15:52:2515-16赛季CBA联赛之辽宁
日期:2017-01-04 14:58:2415-16赛季CBA联赛之辽宁
日期:2017-01-15 09:42:512016科比退役纪念章
日期:2017-02-06 17:21:50黑曼巴
日期:2017-02-10 15:46:1215-16赛季CBA联赛之上海
日期:2017-03-18 10:14:5415-16赛季CBA联赛之青岛
日期:2017-03-18 22:00:44
27 [报告]
发表于 2016-08-09 21:41 |只看该作者
回复 23# kkshaq


    sed -r '/Start and/,/End Time/{/^\s+End Time/G;b}’这部的作用是啥啊?
=>
就是以下这部分数据最后追加一个"\n"(即一个空行),然后b就是跳到命令结尾 让pattern space被打印出来
  1. Start and End Time:
  2. -------------------------------------------------------------------------------
  3.    Start Time:  2016-08-08 18:43:11.126569426
  4.    End Time:    2016-08-09 04:50:10.248093935
复制代码
后面的/-/{:a;$!N;/\n\s*$/!{$!ba};s/\n/&/5;t};d是什么意思呢。。希望能够解释一下!谢谢
=>
将"-"的行到以单独"空格或tab"组成的行追加到pattern space
然后判断这个pattern space 也就是这段数据是否含有6行(即 5个"\n"),如果有的话就直接跳转(t)到命令结尾,让pattern space被打印出来
如下面这段在pattern space中只含有4个"\n",不符合条例,不执行t命令,所以这个pattern space的内容最终会被删掉:
  1. -------------------------------------------------------------------------------
  2. Status Codes of getAuthentication:
  3. -------------------------------------------------------------------------------
  4.    Share [%]    Total Value
  5.    
复制代码
而下面这段就有6个"\n",有7行数据,当执行s/\n/&/5时,成功的.所以会执行t命令跳转到命令结尾 pattern space就会被打印出来(如果没有加-n选项的话)
  1. -------------------------------------------------------------------------------
  2. Status Codes of APNSNotification:
  3. -------------------------------------------------------------------------------
  4.    Share [%]    Total Value
  5.        90.48       19 0
  6.         9.52        2 21
  7.    
复制代码
其它不合条件的行都将被删除(d)

论坛徽章:
6
15-16赛季CBA联赛之新疆
日期:2016-03-22 22:34:5915-16赛季CBA联赛之山东
日期:2016-04-11 09:08:41程序设计版块每日发帖之星
日期:2016-06-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-19 06:20:00每日论坛发贴之星
日期:2016-07-19 06:20:0015-16赛季CBA联赛之青岛
日期:2016-07-20 22:44:17
28 [报告]
发表于 2016-08-09 23:27 |只看该作者
$>  grep -B4 -P '[0-9]\.' --group-separator=$'\n'  log
Start and End Time:
-------------------------------------------------------------------------------
   Start Time:  2016-08-08 18:43:11.126569426
   End Time:    2016-08-09 04:50:10.248093935


-------------------------------------------------------------------------------
SES Actions:
-------------------------------------------------------------------------------
   Share [%]    Total Value
       44.96       58 pushTokenMgmt
       34.11       44 pushAppMessage
       16.28       21 APNSNotification
        3.10        4 sppPushMessage
        1.55        2 identitiesMapMessage


-------------------------------------------------------------------------------
Error Codes of sppPushMessage:
-------------------------------------------------------------------------------
   Share [%]    Total Value
      100.00        2 VALIDATION_FAILURE


-------------------------------------------------------------------------------
Status Codes of APNSNotification:
-------------------------------------------------------------------------------
   Share [%]    Total Value
       90.48       19 0
        9.52        2 21


-------------------------------------------------------------------------------
Records of XforwardedFor:
-------------------------------------------------------------------------------
   Share [%]    Total Value
      100.00        4 10.175.147.226


-------------------------------------------------------------------------------
Redelivery Times of APNS Message:
-------------------------------------------------------------------------------
   Share [%]    Total Value
      100.00       21 0


-------------------------------------------------------------------------------
ServiceName of PushAppMessage:
-------------------------------------------------------------------------------
   Share [%]    Total Value
       33.33       10 vvm
       20.00        6 vowifi
       10.00        3 gen,icloudvowifi,vowifi
        6.67        2 chan1,chan2
        6.67        2 icloudvowifi
        6.67        2 gen
        6.67        2 mca
        3.33        1 testingchannel,vowifi
        3.33        1 conn_mgr,vvm
        3.33        1 multi-sim


-------------------------------------------------------------------------------
ServiceName of SppPushMessage:
-------------------------------------------------------------------------------
   Share [%]    Total Value
       50.00        2 undefined
       50.00        2 vvm


-------------------------------------------------------------------------------
ServiceName of APNSNotification:
-------------------------------------------------------------------------------
   Share [%]    Total Value
       38.10        8 vowifi
       23.81        5 icloudvowifi
       14.29        3 gen
        4.76        1 chan2
        4.76        1 chan1
        4.76        1 vvm
        4.76        1 conn_mgr
        4.76        1 multi-sim


-------------------------------------------------------------------------------
ServiceName of PushTokenMgmt:
-------------------------------------------------------------------------------
   Share [%]    Total Value
       29.09       16 vowifi
       18.18       10 gen
       14.55        8 icloudvowifi
       12.73        7 vvm
       10.91        6 mca
        3.64        2 chan2
        3.64        2 chan1
        3.64        2 multi-sim
        3.64        2 conn_mgr

论坛徽章:
6
15-16赛季CBA联赛之新疆
日期:2016-03-22 22:34:5915-16赛季CBA联赛之山东
日期:2016-04-11 09:08:41程序设计版块每日发帖之星
日期:2016-06-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-19 06:20:00每日论坛发贴之星
日期:2016-07-19 06:20:0015-16赛季CBA联赛之青岛
日期:2016-07-20 22:44:17
29 [报告]
发表于 2016-08-09 23:33 |只看该作者
$>  grep -B4 -P '[0-9]\.' --no-group-separator  log
Start and End Time:
-------------------------------------------------------------------------------
   Start Time:  2016-08-08 18:43:11.126569426
   End Time:    2016-08-09 04:50:10.248093935
-------------------------------------------------------------------------------
SES Actions:
-------------------------------------------------------------------------------
   Share [%]    Total Value
       44.96       58 pushTokenMgmt
       34.11       44 pushAppMessage
       16.28       21 APNSNotification
        3.10        4 sppPushMessage
        1.55        2 identitiesMapMessage
-------------------------------------------------------------------------------
Error Codes of sppPushMessage:
-------------------------------------------------------------------------------
   Share [%]    Total Value
      100.00        2 VALIDATION_FAILURE
-------------------------------------------------------------------------------
Status Codes of APNSNotification:
-------------------------------------------------------------------------------
   Share [%]    Total Value
       90.48       19 0
        9.52        2 21
-------------------------------------------------------------------------------
Records of XforwardedFor:
-------------------------------------------------------------------------------
   Share [%]    Total Value
      100.00        4 10.175.147.226
-------------------------------------------------------------------------------
Redelivery Times of APNS Message:
-------------------------------------------------------------------------------
   Share [%]    Total Value
      100.00       21 0
-------------------------------------------------------------------------------
ServiceName of PushAppMessage:
-------------------------------------------------------------------------------
   Share [%]    Total Value
       33.33       10 vvm
       20.00        6 vowifi
       10.00        3 gen,icloudvowifi,vowifi
        6.67        2 chan1,chan2
        6.67        2 icloudvowifi
        6.67        2 gen
        6.67        2 mca
        3.33        1 testingchannel,vowifi
        3.33        1 conn_mgr,vvm
        3.33        1 multi-sim
-------------------------------------------------------------------------------
ServiceName of SppPushMessage:
-------------------------------------------------------------------------------
   Share [%]    Total Value
       50.00        2 undefined
       50.00        2 vvm
-------------------------------------------------------------------------------
ServiceName of APNSNotification:
-------------------------------------------------------------------------------
   Share [%]    Total Value
       38.10        8 vowifi
       23.81        5 icloudvowifi
       14.29        3 gen
        4.76        1 chan2
        4.76        1 chan1
        4.76        1 vvm
        4.76        1 conn_mgr
        4.76        1 multi-sim
-------------------------------------------------------------------------------
ServiceName of PushTokenMgmt:
-------------------------------------------------------------------------------
   Share [%]    Total Value
       29.09       16 vowifi
       18.18       10 gen
       14.55        8 icloudvowifi
       12.73        7 vvm
       10.91        6 mca
        3.64        2 chan2
        3.64        2 chan1
        3.64        2 multi-sim
        3.64        2 conn_mgr

论坛徽章:
6
15-16赛季CBA联赛之新疆
日期:2016-03-22 22:34:5915-16赛季CBA联赛之山东
日期:2016-04-11 09:08:41程序设计版块每日发帖之星
日期:2016-06-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-19 06:20:00每日论坛发贴之星
日期:2016-07-19 06:20:0015-16赛季CBA联赛之青岛
日期:2016-07-20 22:44:17
30 [报告]
发表于 2016-08-09 23:35 |只看该作者
$>  grep -B4 -P '[0-9]\.' --group-separator='' log
Start and End Time:
-------------------------------------------------------------------------------
   Start Time:  2016-08-08 18:43:11.126569426
   End Time:    2016-08-09 04:50:10.248093935

-------------------------------------------------------------------------------
SES Actions:
-------------------------------------------------------------------------------
   Share [%]    Total Value
       44.96       58 pushTokenMgmt
       34.11       44 pushAppMessage
       16.28       21 APNSNotification
        3.10        4 sppPushMessage
        1.55        2 identitiesMapMessage

-------------------------------------------------------------------------------
Error Codes of sppPushMessage:
-------------------------------------------------------------------------------
   Share [%]    Total Value
      100.00        2 VALIDATION_FAILURE

-------------------------------------------------------------------------------
Status Codes of APNSNotification:
-------------------------------------------------------------------------------
   Share [%]    Total Value
       90.48       19 0
        9.52        2 21

-------------------------------------------------------------------------------
Records of XforwardedFor:
-------------------------------------------------------------------------------
   Share [%]    Total Value
      100.00        4 10.175.147.226

-------------------------------------------------------------------------------
Redelivery Times of APNS Message:
-------------------------------------------------------------------------------
   Share [%]    Total Value
      100.00       21 0

-------------------------------------------------------------------------------
ServiceName of PushAppMessage:
-------------------------------------------------------------------------------
   Share [%]    Total Value
       33.33       10 vvm
       20.00        6 vowifi
       10.00        3 gen,icloudvowifi,vowifi
        6.67        2 chan1,chan2
        6.67        2 icloudvowifi
        6.67        2 gen
        6.67        2 mca
        3.33        1 testingchannel,vowifi
        3.33        1 conn_mgr,vvm
        3.33        1 multi-sim

-------------------------------------------------------------------------------
ServiceName of SppPushMessage:
-------------------------------------------------------------------------------
   Share [%]    Total Value
       50.00        2 undefined
       50.00        2 vvm

-------------------------------------------------------------------------------
ServiceName of APNSNotification:
-------------------------------------------------------------------------------
   Share [%]    Total Value
       38.10        8 vowifi
       23.81        5 icloudvowifi
       14.29        3 gen
        4.76        1 chan2
        4.76        1 chan1
        4.76        1 vvm
        4.76        1 conn_mgr
        4.76        1 multi-sim

-------------------------------------------------------------------------------
ServiceName of PushTokenMgmt:
-------------------------------------------------------------------------------
   Share [%]    Total Value
       29.09       16 vowifi
       18.18       10 gen
       14.55        8 icloudvowifi
       12.73        7 vvm
       10.91        6 mca
        3.64        2 chan2
        3.64        2 chan1
        3.64        2 multi-sim
        3.64        2 conn_mgr
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP