kj wrote: > I need to extract and reorder some columns from some very large > files. GNU cut will extract the columns nicely and quickly, but > won't reorder them. I can do the reordering easily by piping the > output of cut through a perl one-liner, but I'm looking for something > faster. > > Is there a GNU utility that will do this?
Not just GNU but POSIX standard. Use awk. echo one two three four | awk '{print $3, $2, $1, $4}' three two one four NF is the number of fields on the line. Therefore $NF is the last field on the line. This is a common idiom. echo one two three four | awk '{print $NF}' four Therefore $(NF-1) is the next from last and so forth. This allows selecting from the end of the line. echo one two three four | awk '{print $(NF-1)}' three Bob