我想打印awk中倒数第二列或字段。字段的数量是NF变量。我知道我应该能够使用$NF,但我不确定如何使用它。
但这似乎并不奏效:
awk ' { print ( $NF-- ) } '
我想打印awk中倒数第二列或字段。字段的数量是NF变量。我知道我应该能够使用$NF,但我不确定如何使用它。
但这似乎并不奏效:
awk ' { print ( $NF-- ) } '
当前回答
首先递减值,然后打印它
awk ' { print $(--NF)}' file
OR
rev file|cut -d ' ' -f2|rev
其他回答
您是否尝试使用rev命令从右向左启动? 在这种情况下,你只需要打印第二列:
seq 12 | xargs -n5 | rev | awk '{ print $2}' | rev
4
9
11
awk ' { print ( $(NF-1) ) }' file
awk '{print $(NF-1)}'
应该工作
对克里斯·坎农(Chris Kannon)公认答案的一个小补充:只有在最后一列有第二列时才打印。
(
echo | awk 'NF && NF-1 { print ( $(NF-1) ) }'
echo 1 | awk 'NF && NF-1 { print ( $(NF-1) ) }'
echo 1 2 | awk 'NF && NF-1 { print ( $(NF-1) ) }'
echo 1 2 3 | awk 'NF && NF-1 { print ( $(NF-1) ) }'
)
首先递减值,然后打印它
awk ' { print $(--NF)}' file
OR
rev file|cut -d ' ' -f2|rev