用于读取和更新csv文件的Shell脚本

时间:2012-11-27 05:43:08

标签: shell unix

我需要一些帮助来使用Shell脚本读取和更新csv文件。我写了下面的代码来读取csv文件,它工作正常。

#!/bin/sh
#This script is to read the excel data
IFS=","
echo "Starting to read csv"
i=1
while read f1 f2
do
    test $i -eq 1 && ((i=i+1)) && continue
    echo "tenantID is :$f1"
    echo "status is   :$f2"

#The below command will update the schema with data

java -Xmx512m -XX:MaxPermSize=128m -jar biz.jar -install -readers=seed -          delegator=default#$f1

done < TenantId.csv

echo "end of file "

上面的代码工作正常。即它读取csv文件并将tenantID传递给java arg。完成java处理后,我想用一些值更新状态(f2)。同样在上面的代码中,空行也在执行。我想知道如何只处理数据存在的行。请让我知道如何实现同样的目标。

先谢谢

1 个答案:

答案 0 :(得分:1)

while read f1 f2
do
    test $i -eq 1 && ((i=i+1)) && continue
    [ -z "$f1" ] && continue
    echo "tenantID is :$f1"
    echo "status is   :$f2"

    #The below command will update the schema with data

    java -Xmx512m -XX:MaxPermSize=128m -jar biz.jar -install -readers=seed -          delegator=default#$f1

    echo $f1, XXX >> TenantIdOut.csv
done < TenantId.csv

添加了2行代码:

  1. 如果f1为null,则继续 - 这是跳过空行。
  2. 将记录f1和新状态写入新文件,在循环外部,您可以使用此新文件重命名输入文件。