Hello

I found that

echo "a,b,c" | cut -d"," -f1,2

gives the same result as

echo "a,b,c" | cut -d"," -f2,1

This means that it's necessary to use another process to re-order columns. I have written a patch for cut.c included in coreutils-8.20 (http://ftp.gnu.org/gnu/coreutils/coreutils-8.20.tar.xz) that adds a -p option to preserve field order. This means that doing

echo "a,b,c" | cut -d"," -f2,1

still gives

a,b

but

echo "a,b,c" | cut -d"," -f2,1 -p

gives

b,a

The current implementation of cut.c uses putchar so that a full line need not be held in memory, whereas holding a full line is required to re-order the fields rather than printing them from an input stream. This patch uses putchar when -p is not used, but it buffers a full line when -p is used.

What should I do next? I would like to have someone more experienced than I evaluate the changes so that I can improve them and add this functionality to coreutils.

Thank you
-Brad