和某个供应商核对数据,对方是GMT+0时区,我方报表默认北京时间,无法修改为GMT0,
对excel中按照小时级别的数据导出到excel处理,然后转为文本文件,shell转为GMT0进行统计:
前期处理:
先将时间转为"2016-05-01 00:08:00" 格式的数据,便于时间戳的比较。
去除无效的","和"$"符号,便于shell文本处理。
先解决一天的问题,然后循环调用脚本 解决多天的问题。
# for i in `seq 20160501 20160518` ; do sh tongji.sh "$i"; done
#!/bin/bash
#test.sh
zone=
day=
if [ $ != " " ] ; then
day=$
fi time_begin=`date -d "+$zone hour $day" +"%Y-%m-%d %H:%M:%S"`
time_end=`date -d "+$zone hour +1 day $day" +"%Y-%m-%d %H:%M:%S"`
echo "time_begin is: $time_begin , time_end is $time_end"
filename="may-1-18-cost-imp.txt"
cat "$filename" |awk -F "\t" '{
if ($>= "'"$time_end"'" || $ < "'"$time_begin"'") {
next;
}else {
print $ ,$
}
if( $ != "-" ){
cost += $
} if( $ != "-" ){
impress += $
} }END{
print impress, cost }'