0

我正在创建一个名为“size”的变量,并尝试从 gawk 位置变量为其分配一个值。但是,这似乎不起作用。在下面的示例中,我试图将字段 4 的值存储到变量“大小”中。当我打印可变大小时,将打印整行而不是仅打印字段 4。

如何将归档的值保存到变量中以备后用?

prompt>  echo "Live in a big city" | gawk '/Live/ {size=$4; print $size}'

输出如下: 住在大城市

我想看看这个:

大的

4

1 回答 1

2

省略美元符号。awk 与 C 类似,不像 shell 或 perl,您不需要任何额外的标点符号来取消引用变量。您只需使用美元符号来获取当前行的第 n 个字段的值。

echo "Live in a big city" | gawk '/Live/ {size=$4; print size}'

打印整行的原因是: awk 变量size被赋值为big。然后,在 print 语句中,awk 取消引用size变量并尝试print $big。字符串“big”被解释为一个整数,因为它不以任何数字开头,所以它被视为数字 0。所以你得到print $0,因此得到完整的行。

于 2011-10-27T19:21:32.557 回答