我有以下代码
var="ip"
awk '/$var/{
print $1
}' file
但它不起作用,我相信我不能在awk中使用$ var,我试过了
-v var="$var"
也是如此,但它也无效
答案 0 :(得分:3)
/pattern/
不适用于变量,因为它正在查找文字文本pattern
而不是变量。
相反,要获得此功能,您必须使用$0 ~ var
:
awk -v var="ip" '$0 ~ var {print $1}' file
$ cat a
123.456.789 is my ip
this is another thing
$ awk -v var="ip" '$0 ~ var {print $1}' a
123.456.789
答案 1 :(得分:0)
或者您可以在awk
awk '$0 ~ var {print $1}' var="ip" file