用awk的Unix脚本

时间:2014-05-09 14:22:02

标签: unix awk

我有以下代码

var="ip"

awk '/$var/{
print $1
}' file

但它不起作用,我相信我不能在awk中使用$ var,我试过了 -v var="$var"也是如此,但它也无效

2 个答案:

答案 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