awk -F"\t" -v OFS="\t" 'NF>1 {t=$(NF-1); $(NF-1)=$NF; $NF=t} {print}' file Do a standard swap between $NF and $(NF-1). Only only when we have at least 2 fields. It's fatal error to access field -1 (in case of empty line, NF==0).
See also: GNU awk fields