使用awk的Unix脚本

时间:2014-05-09 11:56:01

标签: unix awk

我有一个问题,我不知道为什么我的代码不起作用
代码:

prot="abc"
awk '{
if ( $1 == $prot )
     print $2
}' file.txt

但是当我将我的代码更改为此代码时,它的工作原理是

awk '{
if ( $1 == "abc" )
     print $2
}' file.txt


为什么会这样?

2 个答案:

答案 0 :(得分:2)

您不能直接在脚本中使用bash变量。

相反,请使用-v选项:

-v prot="$prot"

所有在一起:

prot="abc"
awk -v prot="$prot" '{
if ( $1 == prot )
     print $2
}' file.txt

答案 1 :(得分:0)

以下是另一种变体:

prot="abc"
awk '{
if ( $1 == prot )
     print $2
}' prot="$prot" file.txt