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


Reply via email to