在Awk中,$\和$0是同义词吗?
我在Gnu Awk手册或Wikipedia页面中找不到对在Awk中,$\和$0是同义词吗?,awk,Awk,我在Gnu Awk手册或Wikipedia页面中找不到对$\uuuu的引用,但出于Perl习惯,我错误地使用了它,它似乎与$0完全相同 ping www.bbc.co.uk | awk '{print NR,$_}' ping www.bbc.co.uk | awk '{print NR,$0}' 是不是有人不厌其烦地删除了一些非常过时的行为?在OP的代码中: ping www.bbc.co.uk | awk '{print NR,$_}' 解释:以上awk编码将视为一个变量,因为变量没有定
$\uuuu
的引用,但出于Perl习惯,我错误地使用了它,它似乎与$0
完全相同
ping www.bbc.co.uk | awk '{print NR,$_}'
ping www.bbc.co.uk | awk '{print NR,$0}'
是不是有人不厌其烦地删除了一些非常过时的行为?在OP的代码中:
ping www.bbc.co.uk | awk '{print NR,$_}'
解释:以上awk
编码将
视为一个变量,因为变量
没有定义值,所以它的值为零(0
),这就是为什么它从NR,$\u
变为NR,$0
,从而打印当前行。因此,与perl等不同,$没有特殊意义
因此,即使有人尝试这样做:ping www.bbc.co.uk | awk'{print NR,$E}'
也会打印相同的内容。使用$any_undefined_variable
而不是$\u,你也会得到相同的行为。下划线是一个有效的变量名,由于变量未定义,它在数字上下文中的值默认为零,即它确实等同于$0
,但这不是因为$
是一个特例(它不是特例)。您可以定义
的值,例如echo foo bar | gawk-v=2'{print$}“
打印条
。因此,我不建议养成假定\uu
等于零的习惯。