将一个文件(位置变量)的值赋给gawk/awk中用户定义的变量



我正在创建一个名为"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,然后是完整的一行

最新更新