我想打印awk中倒数第二列或字段。字段的数量是NF变量。我知道我应该能够使用$NF,但我不确定如何使用它。

但这似乎并不奏效:

awk ' { print ( $NF-- )  } '

当前回答

如果您有很多列,并且希望打印所有列,而不是最后一列的三列,那么这可能会有所帮助

awk '{ $NF=“”;$(NF-1)=“”;$(NF-2)=“” ; print $0 }'

其他回答

您是否尝试使用rev命令从右向左启动? 在这种情况下,你只需要打印第二列:

seq 12 | xargs -n5 | rev | awk '{ print $2}' | rev
4
9
11
awk '{print $(NF-1)}'

应该工作

awk ' { print ( $(NF-1) ) }' file

这是最简单的:

 awk '{print $--NF}' 

原来的$NF——没有工作的原因是表达式在递减之前求值,而我的前缀递减是在求值之前执行的。

首先递减值,然后打印它

awk ' { print $(--NF)}' file

OR

rev file|cut -d ' ' -f2|rev