Самое простое решение:
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
Какая платформа? Windows, Unix, Макс. , , –
Добавлен «Linux». Благодарю. –