将字段(位置变量)的值赋给gawk/awk中的用户定义变量

将字段(位置变量)的值赋给gawk/awk中的用户定义变量,awk,gawk,Awk,Gawk,我正在创建一个名为“size”的变量,并尝试从gawk位置变量为其赋值。但是,这似乎不起作用。在下面的示例中,我试图将字段4的值存储到变量“size”中。当我打印可变大小时,整行打印,而不是仅打印字段4 如何将字段值保存到变量中以供以后使用 prompt> echo "Live in a big city" | gawk '/Live/ {size=$4; print $size}' 输出以下内容: 住在大城市里 我只想看到这一点: 大的省去美元符号。awk类似于C,而不像shell或

我正在创建一个名为“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。因此,您将获得打印$0的
print
,从而获得完整的行