awk里也可以使用变量的。
假设变量为var,举例:
awk -v a=$var ‘/a/{print}' test.txt
在使用前赋值给awk内部变量。
或者:
awk ‘/'$var'/{print}' test.txt
即,把变量拿到awk的单引号外面来。只要在awk的作用域外面,那就被解释器认为是python变量,而不是awk内部变量。
用 $0 ~ "'变量名'" 来匹配 (双引号里单引号)
下面是测试结果
chengqi@chengqi-PC /cygdrive/d/test
$ cat test.txt
/home/source/ceshi
/home/source/test
/home/filein/look.txt
/d/test/ceshi
chengqi@chengqi-PC /cygdrive/d/test
$ awk '$0 ~ "/home/source/"' test.txt
/home/source/ceshi
/home/source/test
chengqi@chengqi-PC /cygdrive/d/test
$ a="/home/source/"
chengqi@chengqi-PC /cygdrive/d/test
$ awk '$0 ~ "'$a'"' test.txt
/home/source/ceshi
/home/source/test
xiehuahere正解, 虽然俺没测过, hrcq89的答案跟xiehuahere差不多