免费注册 查看新帖 |

Chinaunix

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

[文本处理] 求指点 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-02-25 15:30 |只看该作者 |倒序浏览
cat gap1.dat

O:460
E:1181
E:1182
E:1181
PASS:1451
PASS:1562
O:3572
PASS:1376
PASS:1857
PASS:1894
PASS:2003
O:461
E:7665
E:7665
E:1181
E:1182
PASS:3484
E:1188
E:1183
E:1181

最后我需要的结果是:
O:460   1
E:1181  3
E:1182  2
O:3572  1
O:461   1
E:7665  2
E:1188  1
E:1183  1

经过论坛朋友指点 得到如下处理方法,但对这个一知半解,求哪位高手详细的解释下如下的过程,不胜感谢,最好一步步解释下,谢谢
awk 'function count(){for(i in b)a[i]++;delete b}!/SS/{b[$0]}/SS/{count()}END{count();for(i in a)print i,a[i]}' file

论坛徽章:
28
2015年迎新春徽章
日期:2015-03-04 10:16:53午马
日期:2015-03-20 17:11:07亥猪
日期:2015-03-20 17:11:23戌狗
日期:2015-03-20 17:11:33酉鸡
日期:2015-03-20 17:11:47申猴
日期:2015-03-20 17:11:58未羊
日期:2015-03-20 17:12:10子鼠
日期:2015-03-20 17:12:23丑牛
日期:2015-03-20 17:12:40卯兔
日期:2015-03-20 17:12:51辰龙
日期:2015-03-20 17:13:00巳蛇
日期:2015-03-20 17:13:12
2 [报告]
发表于 2016-02-25 15:34 |只看该作者
本帖最后由 我是一隻羊 于 2016-02-25 15:35 编辑

这样不行吗...就是单纯的计数?还有别的需求吗.....
  1. awk '!/^PASS/{a[$0]++}END{for(i in a)print i,a[i]}' gap1.dat
复制代码

论坛徽章:
54
2015亚冠之德黑兰石油
日期:2015-07-07 13:00:1615-16赛季CBA联赛之深圳
日期:2016-03-31 09:03:5415-16赛季CBA联赛之辽宁
日期:2016-05-09 20:38:15程序设计版块每日发帖之星
日期:2016-05-12 06:20:0015-16赛季CBA联赛之四川
日期:2016-05-13 15:19:4715-16赛季CBA联赛之福建
日期:2016-05-15 20:24:34每日论坛发贴之星
日期:2016-05-16 06:20:0015-16赛季CBA联赛之吉林
日期:2016-05-26 11:49:4715-16赛季CBA联赛之广东
日期:2016-05-26 13:49:18极客徽章
日期:2016-12-07 14:05:2315-16赛季CBA联赛之广夏
日期:2016-12-20 17:33:532017金鸡报晓
日期:2017-01-10 15:19:56
3 [报告]
发表于 2016-02-25 15:52 |只看该作者
你这个帖子发了三次啊, 兄弟。

论坛徽章:
0
4 [报告]
发表于 2016-02-25 15:54 |只看该作者
回复 3# haooooaaa


  还是不懂,请你详细指教,不好意思

论坛徽章:
54
2015亚冠之德黑兰石油
日期:2015-07-07 13:00:1615-16赛季CBA联赛之深圳
日期:2016-03-31 09:03:5415-16赛季CBA联赛之辽宁
日期:2016-05-09 20:38:15程序设计版块每日发帖之星
日期:2016-05-12 06:20:0015-16赛季CBA联赛之四川
日期:2016-05-13 15:19:4715-16赛季CBA联赛之福建
日期:2016-05-15 20:24:34每日论坛发贴之星
日期:2016-05-16 06:20:0015-16赛季CBA联赛之吉林
日期:2016-05-26 11:49:4715-16赛季CBA联赛之广东
日期:2016-05-26 13:49:18极客徽章
日期:2016-12-07 14:05:2315-16赛季CBA联赛之广夏
日期:2016-12-20 17:33:532017金鸡报晓
日期:2017-01-10 15:19:56
5 [报告]
发表于 2016-02-25 15:55 |只看该作者
回复 4# gnpdelove


    实在感觉没什么要解释的啊, 就是按你的要求写的。。。 多看看精华帖就了解了

论坛徽章:
0
6 [报告]
发表于 2016-02-25 15:57 |只看该作者
回复 2# 我是一隻羊


O:460
E:1181
E:1182
E:1181
PASS:1451
PASS:1562
O:3572
PASS:1376
PASS:1857
PASS:1894
PASS:2003
O:461
E:7665
E:7665
E:1181
E:1182
PASS:3484
E:1188
E:1183
E:1181

对gap1.dat有如下操作,gap1.dat是一台设备某一天的log,每天生成的log均有不同
以带有SS关键字的那一行为分割线,对O:460 E:1181等error进行统计,这些error只是一部分大概有300多个,每天出现的都不一样
有几点要求:
1. 连续带有pass的行合并成一行
   pass行可能出现在第一行,也可能出现在最后一行,或者两者都出现,也有可能不出现
2. pass行和下个pass行之间出现的重复error算一件,比如
O:460
E:1181
E:1182
E:1181
PASS:1451
PASS:1562
上面的E:1181算一件
PASS:2003
O:461
E:7665
E:7665
E:1181
E:1182
PASS:3484
上面的E:7665算一件
3.最后我需要的结果是:
O:460   1
E:1181  3
E:1182  2
O:3572  1
O:461   1
E:7665  2
E:1188  1
E:1183  1



   

论坛徽章:
0
7 [报告]
发表于 2016-02-25 15:59 |只看该作者
回复 5# haooooaaa

我想知道第一步是什么,第二步是什么,一步一步的讲一下,现在脑子有点乱,
qq:35626166 能加一下吗


   

论坛徽章:
0
8 [报告]
发表于 2016-02-25 20:45 |只看该作者
回复 5# haooooaaa

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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP