views:

161

answers:

1

I want to do something like this:

cat abcd.txt | cut -f 2,1

and I want the order to be 2 and then 1 in the output. On the machine I am testing (FreeBSD 6), this is not happening (its printing in 1,2 order). Can you tell me how to do this?

I know I can always write a shell script to do this reversing, but I am looking for something using the 'cut' command options.

I think I am using version 5.2.1 of coreutils containing cut.

+4  A: 

This can't be done using cut. According to the man page:

Selected input is written in the same order that it is read, and is written exactly once.

Instead, you can do it using awk, like this:

awk '{print($2,"\t",$1)}' abcd.txt

Replace the \t with whatever you're using as field separator.

Lars Haugseth
Thanks, that worked.
Shreeni