首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用shell脚本忽略csv文件中的第一行(头)

使用shell脚本忽略csv文件中的第一行(头)
EN

Stack Overflow用户
提问于 2020-05-15 13:49:18
回答 1查看 697关注 0票数 0

以下是我的csv文件

联系人Id,客户代码,开户代码,银行BSB,银行ID 2222222220,222222222220,100,084004,fjksanfjkdsksdnfnkjsnQ== 33333330,333333333333,100,084789,sklsnfksnkdfnkgndfkjgn==

这是我用来忽略标题的代码&任何在5个列中都没有数据的行

代码语言:javascript
复制
while IFS=',' read cont_id cust_code bac bsb bid
do
    if [ "$cont_id" == "" ] || [ "$cust_code" == "" ] || [ "$bac" == "" ] || [ "$bsb" == "" ] || [ "$bid" == "" ]; then
        echo $cont_id,$cust_code,$bac,$bsb,$bid >> $SOURCE_DIR/dummyRejectedRecords.csv

    elif [ "$cont_id" == "Customer Code" ] && [ "$cust_code" == "Customer" ] && [ "$bac" == "Billing Account Code" ] && [ "$bsb" == "Bank BSB" ] &&[ "$bid" == "Bank ID" ]; then
        echo $cont_id,$cust_code,$bac,$bsb,$bid >> $SOURCE_DIR/dummyRejectedRecords.csv

    else            
        echo "Contact_Id = '"$cont_id"'"
        echo "Customer_Code = '"$cust_code"'"
        echo "Billing_Account_Code = '"$bac"'"
        echo "Bank_ID = '"$bsb"'"
        echo "Bank_BSB = '"$bid"'"
        echo ""

        #ADD YOUR PROCEDURE HERE
    fi
done < $SOURCE_DIR/dummy.csv

问题是,第一行没有被忽略,这是附加到csv客户代码的1x1值=‘客户代码’。

即使忽略了头,下一行的第一个值也会附加有1st。

这里有人能帮我(不用awk命令)吗?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2020-05-15 14:14:00

想到的第一件事是使用一个简单的控制变量跳过第一次迭代,前提是文件始终包含一个必须作为第一行忽略的头。

在循环中的第一个if语句之前添加以下内容:

代码语言:javascript
复制
if [ -z "$HEADER_DONE" ]; then
    HEADER_DONE=1
    continue
fi
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61820864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档