2012-04-22 13 views
0

シェルからAWKスクリプトファイルに特定の値を渡す必要がありますが、私はそれを行うことはできません。AWKシェルシェルからAWKに値を渡す

#! /bin/bash 

if [ "$2" = "-C" ] && [ "$3" != "" ]; then 

     awk -f SpecCity.awk $1 

elif [ "$2" = "-C" ] && [ "$3" = "" ]; then 

     awk -f CityOnly.awk $1 

fi 

$ 3という値をAWKに渡す必要があります。これは、私が指すファイルと比較しますが、私はそれを行いません。

どうすればいいですか?

ありがとうございました

答えて

3

"awk -v"を使用することができます。たとえば、 "awk -v city = $ 3 ..."

新しいバージョンのawkも "ENVIRON []"配列をサポートしているはずです。私は別の関数を使用しています

http://unix-school.blogspot.com/2011/09/awk-passing-arguments-or-shell.html

+0

+、それは私がエラーを毎回取得しています知らない仕事をdoesntの:

両方のオプションは、ここで議論されています。私はそれを使用しようとします。多分私はそれを正しい方法で使用しないでください。 – user1253622

+0

@ user1253622、paulsm4があなたに正しい答えを与えました。動作していない場合は、awkスクリプトを表示してください –