2017-01-12 5 views
1

シェルスクリプトを使用して入力wileから2つの出力ファイルを生成しています。 1つの行を持つ2番目のファイルが正常に作成されます。シェルスクリプトを使用して異なる値を持つ2つの出力ファイルを生成

3行の入力ファイル(csv)が1つあると仮定します.3行すべての情報を含む1つの出力ファイルを生成しますが、2行出力ファイルは1行の値のみを持つ他の値で生成します。ここ は私のコードです:私はそれが原因の反復ごとに過書き込み(>オペレータ)ファイルの下の行、である引数

答えて

1

として渡しています

#! /bin/bash 
SAVEIFS=$IFS 
IFS="," 
if [ $# -gt 0 ]; then 
    INPUT_FILE="$1" 
    echo 'Brand,Width (mm),Height (mm),Depth (mm)' > mug.csv 
    echo 'Design Name, Type,Product ' > mugsku.csv 
    while read Brand designname width height types 
    do 
     echo "$brand.$width,$height,$depth" >> mug.csv 
     echo "$designname,$types,$ptype" > mugsku.csv 
    done < $INPUT_FILE 
else 
    echo "No argument passed.Pass valid file name" 
fi 

入力ファイル名for-loop

echo "$designname,$types,$ptype" > mugsku.csv 
あなたは、あなたのスクリプトの上にいくつかの-より最適化を行うことができます

echo "$designname,$types,$ptype" >> mugsku.csv 

追記演算子(>>)のような、

  1. 二重引用符あなたの変数を使用していたはずです

    、例えばas "$INPUT_FILE"

  2. フラグをreadに追加すると、より堅牢になります。
+0

ありがとう、それは動作します。 – Urvashi

+0

私は受け入れました。遅れて – Urvashi

+0

私はもう1つの事で私を助けてください。私はcsvファイルを読み込んでいます。私は入力ファイルの最後の行に入力を与える場合、three.Itの代わりに3行を読み込みます。この理由があります。 – Urvashi

関連する問題