shell脚本批量处理数据时对日期的提取
在批量清洗数据的时候经常需要到日期列表中提取一个有效日期,如果只是一行一行循环读取日期列表中的日期显然是不可靠的,
如果程序出现问题,或者其他意外情况,很难知道到底执行到了哪一条,或者重新执行的时候也要修改日期列表。一个好的处理办法是,执行完一天就把这一天的日期进行特殊加工。
这样可以很容知道执行到了哪一天。
#批量清洗时,从文件中获取一个日期
#规则:
#以"#"开头为注释掉的日期
#以"+"开头且后面带-YYYYMMDDHHMM的为处理过的日期
function gfunc_getOneDate() { DateFile=$1; if [ -s "${DateFile}" ];then NowDate=`date +"%Y%m%d%H%M"` for i in `cat ${DateFile}` do L_date=`echo $i | grep -v '#' | grep -v '+'`; #去掉被注释的日期及处理过的日期 if [ -n "${L_date}" ];then echo ${L_date%%-*}; # 返回一天有效的日期 sed -i 's/^'${L_date}'/'+${L_date}-${NowDate}'/g' ${DateFile} #对日期进行加工 exit 0 fi done fi exit 0 }
浙公网安备 33010602011771号