Chinaunix

标题: 请教个awk的问题 [打印本页]

作者: lasama    时间: 2010-12-27 22:11
标题: 请教个awk的问题
有一些数据,类似于这样的,有很多行

旅游部 ,官网-旅游热点-美国旅游,.....
能源部,能源-石油-进口石油,.....
旅游部,官网-旅游分类-按地区分类,.....
能源部,能源-天然气-国产天然气,.....
旅游部,官网-链接-友情链接,.....
旅游部,论坛-交流-驴友分享,.....
......
.....



要求:把第一列相同,第二列第一个“-”之前的内容相同的行统计出来
例如:
旅游部,官网 3
旅游部,论坛 1
能源部,能源 2


哪位大虾指点下?
作者: wtuter    时间: 2010-12-27 22:24
回复 1# lasama


    awk -F'-' '{a[$1]+=1}END{for(i in a)print i,a}'
作者: jing494485758    时间: 2010-12-27 22:34
本帖最后由 jing494485758 于 2010-12-27 22:38 编辑

a【i】怎么打不出来
作者: L_kernel    时间: 2010-12-27 22:38
似乎有点问题。
  1. $ awk 'BEGIN{FS="-"}{++str[$1]}END{for(i in str)print i,str[i]}' line.txt
  2. 旅游部, 官网 1
  3. 旅游部,官网 2
  4. 能源部,能源 2
  5. 旅游部,论坛 1
复制代码
前两个不知道为什么不能合并?
作者: L_kernel    时间: 2010-12-27 22:40
有一些数据,类似于这样的,有很多行

旅游部 ,官网-旅游热点-美国旅游,.....
能源部,能源-石油-进口石 ...
lasama 发表于 2010-12-27 22:11



    原来是一个逗号的问题,修改了就好了。
  1. $ awk 'BEGIN{FS="-"}{++str[$1]}END{for(i in str)print i,str[i]}' line.txt
  2. 旅游部,官网 3
  3. 能源部,能源 2
  4. 旅游部,论坛 1
复制代码

作者: L_kernel    时间: 2010-12-27 22:43
a【i】怎么打不出来
jing494485758 发表于 2010-12-27 22:34



    什么?怎么打不出来?
作者: lasama    时间: 2010-12-27 22:59
原来是一个逗号的问题,修改了就好了。
L_kernel 发表于 2010-12-27 22:40



   

作者: yinyuemi    时间: 2010-12-28 06:12
cut 加 sort 加 uniq -c 应该也可以
作者: ly5066113    时间: 2010-12-28 08:40
回复 3# jing494485758


放在 code 标签里就好了
  1. a[i]
复制代码

作者: zzy7186    时间: 2010-12-28 09:24
cut 加 sort 加 uniq -c 应该也可以
yinyuemi 发表于 2010-12-28 06:12



    sort d | cut -d"-" -f 1 | uniq -c
作者: ziyunfei    时间: 2010-12-28 09:39
awk 'BEGIN{FS=",|-"}{print $1,$2}' file|sort|uniq -c




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2