如何使用awk打印最后两列

我想要的是最后两列打印。

您可以使用设置为inputlogging中字段总数的variablesNF

 awk '{print $(NF-1),"\t",$NF}' file 

这假定你至less有2个字段。

 awk '{print $NF-1, $NF}' inputfile 

注意:只有至less有两列存在时才有效。 在有一列的logging中,您将得到一个虚假的"-1 column1"

@jim mcnamara:尝试在NF附近使用括号,例如$(NF-1)$(NF)而不是$NF-1$NF (适用于FreeBSD awkgawk Mac OS X 10.6.8)。

 echo ' 1 2 2 3 one one two three ' | gawk '{if (NF >= 2) print $(NF-1), $(NF);}' # output: # 1 2 # 2 3 # two three 

使用gawk展品的问题是:

  gawk '{ print $NF-1, $NF}' filename 1 2 2 3 -1 one -1 three # cat filename 1 2 2 3 one one two three 

我只是在Solaris 10 M4000上安装gawk:因此,gawk是$ NF-1与$(NF-1)问题上的瓶颈。 下一个问题POSIX说什么? 每:

 http://www.opengroup.org/onlinepubs/009695399/utilities/awk.html 

没有方向。 不好。 gawk意味着减法,其他awks意味着字段数或减法。 哼。