csvファイルのデータをCshellスクリプトに読み込む方法はありますか?
パラメータセットを使用して他のスクリプトを再帰的に呼び出す小さなスクリプトがあります。データファイルからこのパラメータセットを読みたいです。どうすればいいですか? awkを使用してこれを実装するのに問題があります。
私のデータファイルの形式は次のとおりです。
ecc obliq precu
0.035765 23.778 302.46
0.034552 23.709 286.67
.
.
これは私のコードです。
set ecc = (0.035765 0.034552 0.033316 0.032062 0.030792 0.029511 0.028223 0.026935 0.025652 0.024384)
set obliq = (23.778 23.709 23.629 23.541 23.447 23.35 23.253 23.158 23.069 22.989)
set precu = (302.46 286.67 270.94 255.27 239.68 224.17 208.78 193.52 178.43 163.54)
@ i=1000
@ k=1
while ($i <= 1009)
cd Run${i}
Run${i}/run${i} $i $ecc[$k] $obliq[$k] $precu[$k] >&! xout &
@ i= $i + 1
@ k= $k + 1
end
したがって、上記のコードのように変数を設定する代わりに、データファイルからecc、obliq、およびprecu変数を読みたいと思います。どうすればいいですか?とても感謝しています。
答え1
次のことができます。
set file='foo.bar'
set ecc=(`awk '{print $1}' "$file"`)
set obliq=(`awk '{print $2}' "$file"`)
set precu=(`awk '{print $3}' "$file"`)
...
コマンド出力を次のような他のコマンドに置き換えることができます。これはfoo `bar`
、出力を引数として呼び出すのと同じです。foo
bar
awk
熱を分離するために使用できます。print $1
入力から最初の列、print $2
2番目の列などを取得します。$
変数が置き換えられないように単一引用符を使用する必要があります。