1.利用shell cmdline的特性
A=123
awk '/^'"$A"'/ { print $2 }'
上面的cmdline中,shell把'/^'"$A"'/ { print $2 }'作为awk的第一个参数,这个'/^'"$A"'/ { print $2 }'可以分为3小块
(1)'/^':因为/^被单引号引起来,所以shell传这个小部分给awk时候,传的是:/^
(2)"$A":因为$A是被双引号引起,所以shell传这个小部分给awk时候,先把$A,做给“变量替换”,所以传的是:123
(3)'/ { print $2 }':因为/ { print $2 }被单引起来,所以传的是:/ { print $2 }
这3个小部分做为一个参数传给awk,合计3个小部分,那么传的就是
/^123/ { print $2 }
2.使用-v参数
A=123
awk -v B="$A" '/^B/ { print $2 }'
3.pass variable settings into awk as "fake file names"
awk '/^B/ { print $2 }' B="$A"
该贴由system转至本版2014-9-18 23:43:11