需求:在shell中使用awk命令时,awk会调用shell中的变量。比如根据数字for循环。
for i in `seq 1 5`
do
awk '{print $$i}' filename
done
这个里面的$i按理说应该是1到5数字,但是awk中并不会识别。 那如何才能识别到呢?应该这样用:
A=44; echo "ABCD" | awk -v a=$A ’{print a}’
说明:-v选项用于定义参数,这里表示将变量A的值赋予GET_A。 有多少个变量需要赋值,就需要多少个-v选项。
所以上面的for循环脚本应该改成如下:
for i in `seq 1 5`
do
awk -v a=$i '{print $a}' filename
done