awk之去重后再统计数量

回复 收藏
awk之去重后再统计数量
分类: LINUX
文本:
b|3
a|2
a|3
a|2
b|1
b|2

文本去重后统计a和b出现的次数,最后输出:
a|2
b|3


awk -F'|' '!a[$0]++{b[$1]++}END{for(i in b)print i FS b}' file
[解析]
  这个题也有那么一点点意思,当初没看明白结果是怎么来的,后来才看懂,原来先是对数据去重,然后再对a和b进行统计出现了多少次。其实换个思路来考虑,就是统计a和b的次数类似a[$1]++这样的语句是非常简单的,但是有个前提是去重,那么就肯定要有个条件去考虑重复的问题,是不是这样考虑,一个数组去重,一个数组统计呢?对了,就是这样子的。

请问这个  
!a[$0]++  如何理解呢?$0是每一行的所有字段吧?那么这表示a数组吗?
2015-09-15 10:34 举报
已邀请:

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: