免费注册 查看新帖 |

Chinaunix

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

文本处理;排序 [复制链接]

论坛徽章:
0
发表于 2009-05-26 10:39 |显示全部楼层
样本如下:
china 345
ddddd 789
china 1230
hongkong 8700
4    700
ddddd 7098
4 6000
hongkong 1092
china  8889

我想要的结果是 :
china 345,1230,8889
ddddd 789,7098
4 700,6000
hongkong 1092,8700

也就是把具有相同首域的第二个域的内容在同一行输出

论坛徽章:
0
发表于 2009-05-26 10:43 |显示全部楼层
awk '{a[$1]=a[$1]" "$2}END{for (i in a)print i,a[ i ]}' urfile

4  700 6000
hongkong  8700 1092
china  345 1230 8889
ddddd  789 7098

论坛徽章:
0
发表于 2009-05-26 10:44 |显示全部楼层

  1. awk '{if(!a[$1]) a[$1]=$2;else a[$1]=a[$1]","$2}END{for(i in a)print i,a[i]}' URFILE
复制代码

论坛徽章:
9
2015亚冠之阿尔纳斯尔
日期:2015-09-10 16:21:162015亚冠之塔什干火车头
日期:2015-07-01 16:23:022015年亚洲杯之巴勒斯坦
日期:2015-04-20 17:19:46子鼠
日期:2014-11-13 09:51:26未羊
日期:2014-08-28 18:13:36技术图书徽章
日期:2014-02-21 09:30:15酉鸡
日期:2014-01-14 11:12:49天蝎座
日期:2013-12-09 17:56:53平安夜徽章
日期:2015-12-26 00:06:30
发表于 2009-05-26 10:53 |显示全部楼层
awk '{a[$1]?a[$1]=a[$1]","$2:a[$1]=$2}END{for(j in a)print j,a[j]}' urfile

论坛徽章:
0
发表于 2009-05-26 10:54 |显示全部楼层

回复 #3 kwokcn 的帖子

谢谢,如果有重复的在你的 句子里怎么 去 掉 ?
就是说有两行完全一样的。开始没写清楚不好意思

还有2楼的兄弟,

论坛徽章:
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
发表于 2009-05-26 10:54 |显示全部楼层
try:
  1. awk '{a[$1]=a[$1]?a[$1]","$2:$1 " " $2;}END{for ( i in a ) print a[i]}' urfile
复制代码

去重:
  1. awk '!b[$0]++{a[$1]=a[$1]?a[$1]","$2:$1 " " $2;}END{for ( i in a ) print a[i]}' urfile
复制代码

[ 本帖最后由 blackold 于 2009-5-26 10:56 编辑 ]

论坛徽章:
0
发表于 2009-05-26 10:55 |显示全部楼层

回复 #3 kwokcn 的帖子

知道 怎么 去了。谢了

论坛徽章:
0
发表于 2009-05-26 10:58 |显示全部楼层

回复 #6 blackold 的帖子

能解释一下,第一个花括号里的意思吗?谢谢

论坛徽章:
0
发表于 2009-05-26 11:06 |显示全部楼层
如果a[$1]存在,就在a[$1]后追加$2;如果a[$1]不存在,a[$1]赋值为$1"     "$2。
最后遍历a数组的时候只输出a就行了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP