Rearrange columns using cut

Boolean picture Boolean · Jan 24, 2010 · Viewed 117.6k times · Source

I am having a file in the following format

Column1    Column2
str1       1
str2       2
str3       3

I want the columns to be rearranged. I tried below command

cut -f2,1 file.txt

The command doesn't reorder the columns. Any idea why its not working?

Thank you.

Answer

Ignacio Vazquez-Abrams picture Ignacio Vazquez-Abrams · Jan 24, 2010

For the cut(1) man page:

Use one, and only one of -b, -c or -f. Each LIST is made up of one range, or many ranges separated by commas. Selected input is written in the same order that it is read, and is written exactly once.

It reaches field 1 first, so that is printed, followed by field 2.

Use awk instead:

awk '{ print $2 " " $1}' file.txt