[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