zoukankan      html  css  js  c++  java
  • bash检查文件格式

    情形描述:最近在做一个ETL的项目,用的是CLoverETL,需要在拿到文件后对文件格式进行检验,以决定是否继续。

    主要功能是检查每个文件中有几个“|”符号,项目中约定以该符号来作为分隔,所以检查每个文件每行的“|”的个数。没有问题才可以插入到数据库中。

    说明:

    breakline=10表示如果一个文件中超过10行的格式不对,则不再计算
    试了下,CloverETL这款工具中支持的通配符非常有限,所以类似
    Hengda_Payment_*_*_*_*这样看起来很怪的匹配方式
    check_delimitor(){
        delimitor="|"
        breakline=10
        path="${DATATMP_DIR}/bash_res.txt"
        i=1
        while read line
        do
            num=$(echo $line|grep -o $delimitor|wc -l)
            if [ $num != $1 ];then 
                echo "$2|${i}|${NOW}" >> ${DATATMP_DIR}/bash_res.txt
                if [ $i -gt $breakline ]
                then
                    echo "****More than ${i} lines format wrong in $2****" >> $path
                    break 
                fi
            fi
            let i++
        done < ${DATATMP_DIR}/$2
    }
    
    for file in `ls ${DATATMP_DIR}`
    do
        case $file in
        Hengda_Member_*)
        check_delimitor 27 $file
        ;;
        Hengda_Ticket_*)
        check_delimitor 7 $file
        ;;
        Hengda_Payment_*_*_*_*)
        check_delimitor 7 $file
        ;;
        Hengda_Payment_*)
        check_delimitor 9 $file
        ;;
        Hengda_Transaction_Non_Tickets_*)
        check_delimitor 7 $file
        ;;
        Hengda_Transaction_*)
        check_delimitor 14 $file
        ;;
        Hengda_Item_Non_Tickets_*)
        check_delimitor 6 $file
        ;;
        Hengda_Cinema_*)
        check_delimitor 8 $file
        ;;
        Hengda_Film_*_*)
        check_delimitor 6 $file
        ;;
        Hengda_Film_*)
        check_delimitor 10 $file
        ;;
        Hengda_Refer_*)
        check_delimitor 6 $file
        ;;
        *) echo "FILE NAME WRONG" ;;
        esac
    done
  • 相关阅读:
    jquery Table基础操作
    window.opener
    CSS基础
    CSS样式
    CSS框架
    常用正则表达式
    HTML字体对应word字体
    SQL获取所有数据库名、表名、储存过程以及参数列表
    SQL集合运算:差集、交集、并集
    sql数据分页
  • 原文地址:https://www.cnblogs.com/ryansunyu/p/5195237.html
Copyright © 2011-2022 走看看