Forcing the order of output fields from cut command
awk, freebsd, gnu-coreutils, shell, unix
Solution
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.
Patching `cut` has been proposed many times, but even complete patches have been rejected.
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.
Problem
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.