我正在创建一个名为“size”的变量,并尝试从 gawk 位置变量为其分配一个值。但是,这似乎不起作用。在下面的示例中,我试图将字段 4 的值存储到变量“大小”中。当我打印可变大小时,将打印整行而不是仅打印字段 4。
如何将归档的值保存到变量中以备后用?
prompt> echo "Live in a big city" | gawk '/Live/ {size=$4; print $size}'
输出如下: 住在大城市
我想看看这个:
大的
省略美元符号。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
,因此得到完整的行。