0

シェル スクリプトを使用して 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 処理が完了したら、status(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がnullの場合、続行-これは空白行をスキップするためです。
  2. レコードf1と新しいステータスを新しいファイルに書き込みます。ループの外側で、入力ファイルの名前をこの新しいファイルに変更できます。
于 2012-11-27T05:53:55.233 に答える