2012-04-22 60 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