awk匹配的字符串中含有‘⼀’时怎么弄?

2025-03-20 06:00:32
推荐回答(3个)
回答1:

awk里也可以使用变量的。

假设变量为var,举例:
awk -v a=$var ‘/a/{print}' test.txt
在使用前赋值给awk内部变量。

或者:
awk ‘/'$var'/{print}' test.txt
即,把变量拿到awk的单引号外面来。只要在awk的作用域外面,那就被解释器认为是python变量,而不是awk内部变量。

回答2:

用 $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

回答3:

xiehuahere正解, 虽然俺没测过, hrcq89的答案跟xiehuahere差不多