我正在创建一个名为"size"的变量,并试图从gawk位置变量分配一个值给它。但是,这似乎不起作用。在下面的例子中,我试图将字段4的值存储到变量"size"中。当我打印可变大小时,打印整行,而不是只打印字段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
,然后是完整的一行