在群里看到网友的awk面试题一例 原题:有以下数据,须要经过awk统计每月的收入总和,按月排序 20150106|2210 20150206|2234 20150206|1234 20150305|2234 20150405|2235 20150405|235 解决思路: 1)以|为分隔符取交易时间,并且是要月份 2)根据上一步的月份进行收入汇总 3)将结果按照月份排序 解决方法: [hadoop@localhost login]$ cat 1.txt 20150106|2210 20150206|2234 20150206|1234 20150305|2234 20150405|2235 20150405|235 [hadoop@localhost login]$ awk -F'|' '{a[substr($1,1,6)]+=$2}END{for(i in a)print i,a[i]|"sort -nk 1"}' 1.txt 201501 2210 201502 3468 201503 2234 201504 2470