我的 Linux shell 脚本的这个问题来自this other。
案例方案:
$ cat test.txt
C1 C2 C3
1 a snow
2 b snowman
snow c sowman
搜索带有第三字段包含“雪”的行就可以了:
$ awk '$3 ~/snow/' test.txt
1 a snow
2 b snowman
但是我需要通过使用变量来实现:
$ word="snow"
$ echo $word
snow
$ awk -v variable="snow" '$3 ~/variable/' test.txt
$ awk -v variable="$word" '$3 ~/variable/' test.txt
$
可以看出,没有没有结果。
如何执行基于AWK搜索变量的?
答案 0 :(得分:2)
您应该将$3 ~/variable/
更改为$3 ~ variable
,因为/../
包含正则表达式而不是变量。因此,在您的情况下,它将尝试搜索名为变量的“字符串”,而不是名为变量的“变量”。