awk 二列相等求第三列的和,和平均值,及for循環根據第二列求第三列最大值

舉個例子有下面一個文件 1.txt

aaaa,哈哈,9
bbb,啦啦,5
ccc,嗯嗯,6
aaaa,哈哈,6
bbb,啦啦,7
ccc,嗯嗯,4
aaaa,哈哈,3
asd,啦啦,3

###求和

cat 1.txt |awk -F"," '{sum[$2]+=$3}END{for(c in sum){print c,sum[c]}}'

###求平均值

cat 1.txt |awk -F"," '{sum[$2]+=$3;a[$2]++}END{for(c in sum){printf("%s %10d\n", c,sum[c]/a[c])}}'

###根據第二列求每一類的最大值

這個需要寫個腳本

#!/bin/bash

type=(`cat 1.txt|awk -F"," '{print $2}'|sort -u`)

for i in `echo ${type[*]}`
do
cat ${log_file}|grep $i|sort -t, -k2 -nk3|tail  -n1
done

 

 

 

 

發佈了31 篇原創文章 · 獲贊 30 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章