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
}

 

  

 

posted @ 2017-06-10 16:06  萨尔甘  阅读(1250)  评论(0)    收藏  举报