I want to print the second last column or field in awk. The number of fields is variable. I know that I should be able to use $NF but not sure how it can be use
$NF
Did you tried to start from right to left by using the rev command ? In this case you just need to print the 2nd column:
seq 12 | xargs -n5 | rev | awk '{ print $2}' | rev 4 9 11
awk '{print $(NF-1)}'
Should work
awk ' { print ( $(NF-1) ) }' file