0

我正在寻找缩放来理解为什么会这样:

palabra=s_gonzalez
i=10
awk -vvar1=$palabra -vvvar2=$i '( $1 == var1 ) && ( $2 == var2 ) {print $0}' As

没有打印任何东西。该As文件包含:

r_castillo  10
flores  6
s_gonzalez  10
o_gutzwiller    12
h_ji    4

提前感谢您的任何建议。

4

2 回答 2

3

你在哪里:

vvar2

你拼错了var2吗?

于 2012-06-01T00:00:54.907 回答
0

作为避免此类问题的一种技术,您可以分配不带-v. 我会重写命令:

awk '$1==var1 && $2==var2' var1=$palabra var2=$i As

-v对我来说,在程序之后将变量作为参数而不是作为程序之前的选项分配似乎总是更简单。(-v分配在BEGIN块中可用,但在这种情况下无关紧要。)

于 2012-06-01T14:26:20.790 回答