免费注册 查看新帖 |

Chinaunix

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

[文本处理] awk文本处理 [复制链接]

求职 : Linux运维
论坛徽章:
4
狮子座
日期:2014-12-20 10:15:35天秤座
日期:2014-12-24 16:54:192015年亚洲杯之科威特
日期:2015-01-27 21:32:482015亚冠之平阳省
日期:2015-10-22 16:31:52
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-11-29 16:12 |只看该作者 |倒序浏览
用awk如何处理以下文本:
1    10    45    67
1    10    35    89
1    10    25    28
1    20    34    32
1    20    35    45
1    20    25    13
1    20    39    41
     ...   ...
得到如下结果:
(   10)={T  45V  67,T   35V   89,T  25V  28}
(   20)={T  34V  32,T   35V   45,T  25V  13,T  39V  41}
      ...   ...

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
2 [报告]
发表于 2014-11-29 18:36 |只看该作者
回复 1# 冰谛

$ awk '{d="T "$3"V "$4;if(a[$2]==""){t[++c]=$2;a[$2]=d}else{a[$2]=a[$2]","d}}END{for(n=1;n<=c;n++)printf("(%4d)={%s}\n",t[n],a[t[n]])}' FILE
(  10)={T 45V 67,T 35V 89,T 25V 28}
(  20)={T 34V 32,T 35V 45,T 25V 13,T 39V 41}

论坛徽章:
60
20周年集字徽章-20	
日期:2020-10-28 14:04:3015-16赛季CBA联赛之北京
日期:2016-07-06 15:42:0715-16赛季CBA联赛之同曦
日期:2016-06-12 10:38:0915-16赛季CBA联赛之佛山
日期:2016-05-27 11:54:56黄金圣斗士
日期:2015-12-02 11:44:35白银圣斗士
日期:2015-11-25 14:32:43白银圣斗士
日期:2015-11-23 12:53:352015亚冠之布里斯班狮吼
日期:2015-10-21 16:55:482015亚冠之首尔
日期:2015-09-01 16:46:052015亚冠之德黑兰石油
日期:2015-08-31 11:39:192015亚冠之萨济拖拉机
日期:2015-08-28 21:06:5315-16赛季CBA联赛之广东
日期:2016-07-12 14:58:53
3 [报告]
发表于 2014-11-29 23:12 |只看该作者
  1. awk '{k="T "$3"V "$4;a[$2]=a[$2]?a[$2]","k:k}END{for(i in a)printf("(%4d)={%s}\n",i,a[i])}' file
复制代码
  1. #!/usr/bin/evn python
  2. # -*- coding: utf-8 -*-
  3. d = {}
  4. with open('file') as myfile:
  5.     for line in myfile:
  6.         l = line.split()
  7.         d.setdefault(l[1], []).append("T %sV %s" %(l[2], l[3]))
  8. for k in sorted(d):
  9.     print '(%4s)={%s}' % (k, ','.join(d[k]))
复制代码

论坛徽章:
13
双鱼座
日期:2013-10-23 09:30:05数据库技术版块每日发帖之星
日期:2016-04-20 06:20:00程序设计版块每日发帖之星
日期:2016-03-09 06:20:002015亚冠之塔什干火车头
日期:2015-11-02 10:07:452015亚冠之德黑兰石油
日期:2015-08-30 10:07:07数据库技术版块每日发帖之星
日期:2015-08-28 06:20:00数据库技术版块每日发帖之星
日期:2015-08-05 06:20:002015年迎新春徽章
日期:2015-03-04 09:57:09辰龙
日期:2014-12-03 14:45:52酉鸡
日期:2014-07-23 09:46:23亥猪
日期:2014-03-13 08:46:22金牛座
日期:2014-02-11 09:36:21
4 [报告]
发表于 2014-11-30 11:07 |只看该作者
awk '{a[$2]=a[$2]?a[$2]",T "$3"V "$4 :"T "$3"V " $4;}END{for(i in a){printf "(%4d=)={%s}\n",i,a[i]}}' urfile
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP