2011-06-16 37 views
6
x=3 
A=`echo $A|awk '{print $x}'` 
echo $A 

犯规打印3.使用AWK如何使用变量使用awk *与变量

回答

10

变量传给awk-v标志。

x=3 
A=`echo $A|awk -v y=$x '{print y}'` 
echo $A 
+0

尼斯之一。用双引号替换引号也可以。 – 2011-06-16 14:22:16

+1

'echo $ A'有什么好处?这里没有'$ A'。 – Jens 2014-03-03 16:10:07

3

您可以通过这种方式使用shell的变量:"'$your-shell-variable'"'$your-shell-variable'。前者将该变量视为字符串,而后者将其视为数字。以下是你想要的代码:

x=3  
A=`echo $A|awk '{print "'$x'"}'`  
echo $A 
1

呃,什么是呼应$A?它只是创建一个无用的叉子和管道。

x=3 
A=`awk -v y=$x 'BEGIN {print y}'` 
echo $A 

虽然我在这,这似乎是一个令人费解的和昂贵的方式来写A=$x :-)

+0

Downvoting不告诉我为什么?那很便宜... – Jens 2014-03-03 16:40:18