2012-04-22 59 views
0

我需要將特定的值從shell傳遞到AWK腳本文件,但我不知道我不能這樣做。AWK SHELL將shell從外殼傳遞到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

我使用另一個函數+它不工作,我不知道我正在每次得到一個錯誤。我嘗試使用它。也許我不會以正確的方式使用它。 – user1253622 2012-04-22 17:49:44

+0

@ user1253622,paulsm4給了你正確的答案。如果它不工作,請向我們展示您的awk腳本 – 2012-04-22 21:06:13