0

在使用 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)。同样在上面的代码中,空白行也被执行。我想知道如何只处理存在数据的行。请让我知道如何实现同样的目标。

提前致谢

4

1 回答 1

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 为空,则继续 - 这是跳过空白行。
  2. 将记录 f1 和新状态写入新文件,在循环之外,您可以用这个新文件重命名输入文件。
于 2012-11-27T05:53:55.233 回答