awk面試題一例

在羣裏看到網友的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
相關文章
相關標籤/搜索