awk面试题
2018-07-16 010028 张三 总部 信息技术部 正常出勤 正常出勤 2018-07-16 07:58 2018-07-16 19:06 2018-07-17 010028 张三 总部 信息技术部 正常出勤 正常出勤 2018-07-17 07:51 2018-07-17 18:38 2018-07-18 010028 张三 总部 信息技术部 正常出勤 正常出勤 2018-07-18 07:54 2018-07-18 17:05 2018-07-19 010028 张三 总部 信息技术部 正常出勤 正常出勤 2018-07-19 08:12 2018-07-19 17:08 2018-07-20 010028 张三 总部 信息技术部 正常出勤 正常出勤 2018-07-20 08:23 2018-07-20 17:06 2018-07-21 010028 张三 总部 信息技术部 正常休息 正常休息 2018-07-22 010028 张三 总部 信息技术部 正常休息 正常休息 2018-07-16 010075 李四 总部 信息技术部 正常出勤 正常出勤 2018-07-16 08:58 2018-07-16 19:06 2018-07-17 010075 李四 总部 信息技术部 正常出勤 正常出勤 2018-07-17 08:51 2018-07-17 18:38 2018-07-18 010075 李四 总部 信息技术部 正常出勤 正常出勤 2018-07-18 08:54 2018-07-18 17:05 2018-07-19 010075 李四 总部 信息技术部 正常出勤 正常出勤 2018-07-19 07:12 2018-07-19 17:08 2018-07-20 010075 李四 总部 信息技术部 正常出勤 正常出勤 2018-07-20 08:23 2018-07-20 17:06 2018-07-21 010075 李四 总部 信息技术部 正常休息 正常休息 2018-07-22 010075 李四 总部 信息技术部 正常休息 正常休息
awk '$1~/07-16$/,$1~/07-20$/{split($(NF),lef,":");split($(NF-2),arr,":");sum[$3]+=(lef[1]*60+lef[2]-arr[1]*60-arr[2])/60;}END{for(i in sum) print i,sum[i]/5"h"}' statistics_working_hours.txt