Самое простое решение:
awk '{print $2 "\t" $1}'
Однако есть некоторые проблемы. Если в любом из полей могут быть пробелы, вам нужно выполнить одно из: (в зависимости от того, поддерживает ли ваш awk -v)
awk -v FS='\t' '{print $2 "\t" $1}'
awk 'BEGIN{ FS="\t" } {print $2 "\t" $1}'
Кроме того, вы можете сделать одно из:
awk -v OFS='\t' '{print $2,$1}'
awk 'BEGIN{ OFS="\t" } {print $2,$1}'
awk -v FS='\t' -v OFS='\t' '{print $2,$1}' # if allowing spaces in fields
Один из комментариев спрашивает: «Куда идет имя файла»? В качестве фильтра используется awk, поэтому обычно он выглядит так:
$ some-cmd | awk ... | other-cmd
без указания имени файла. Или имя файла может быть задано в качестве аргумента после всех команд:
$ awk ... filename