help-gnu-utils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How to extract *and reorder* columns?


From: Bob Proulx
Subject: Re: How to extract *and reorder* columns?
Date: Sat, 1 Mar 2008 16:52:44 -0700
User-agent: Mutt/1.5.13 (2006-08-11)

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

[Prev in Thread] Current Thread [Next in Thread]