shell计数

 

cat 20171015_datarecord.txt| awk -F '_' '{a[$1]++} END {for (i in a) {print i,a[i]|"sort -k 2"}}'

 

1.$1作为变量a(字典)的key,++进行计数;

2.i in a进行遍历取值;

3.sort -k 2,以打印结果的第二个作为排序依据。

 

 cat a.txt |awk -F '|' '!a[$0]++ {b[$1]++} END {for (i in b) {print i,b[i]|"sort -k2r"}}'

 

cat a.txt

a|2
a|3
b|1
c|2
b|1
a|1
b|10
c|0
c|11

 

去重后,根据第2列,降序排列。

!a[$0]++为判断没有相同记录时,b[$1]++记录$1出现次数。

a 3
c 3
b 2

 

注:cat a.txt |awk -F '|' '!a[$0]++ {b[$1]+=$2} END {for (i in b) {print i,b[i]|"sort -k 1r"}}'

去重后,对key进行v的求和。

c 13
b 11
a 6

posted on 2017-10-16 22:43  sayhihi  阅读(2502)  评论(0编辑  收藏  举报