系統環境:CentOS 6.2 x86_64
內容如下:
要求:每個數據保留最初的和最後的,就是日期相同的只打印第一個和最後一個(類似打卡記錄篩選)
方法:awk '{a[$1]++;b[$1,a[$1]]=$0}END{for(i in a) print b[i,1],b[i,a[i]]}' 123
解析:第一個數組a以$1下標,並累加。第二個數組b為二位數組,以$1,a[$1]為下標,並把$0賦值給b。因為a數組累加,所以相同下標的出現多少次,其值就為多少。b數組中相同第一個下標的最後一個的第二個下標就是a[第一個]的值,所以最打印的b[i,1],b[i,a[i]] 就是想要的結果。