Shiping Wang wrote:

> Hello,
> 
> With this sample data set, I have a different question. How can I
> rearrange columns such as this:
> 
> before:
> col1    col4    col5    col2    col6    col3
> Abc     12.8    8       left    1       15.7
> Def     13.8    9       top     0       19.7
> gef     14.8    9       left    0       19.7
> Dgf     12.3    9       right   4       99.6
> cef     16.8    4       right   0       89.7
> baf     32.8    7       bottom  5       79.8
> efg     16.8    5       right   0       56.7
> etg     12.8    2       left    7       34.7

[snip]

> 
> I thought one way to do it is to transpose the array, sort _ColumnName_,
> then transpose it back. Is this right way to do it?

if the columns are always out in this order, you can easily reorder them 
without sort:

#!/usr/bin/perl -w
use strict;

while(<DATA>){
    
        print join("\t",map {(split)[0,3,5,1,2,4]} $_),"\n";
}

__DATA__
col1    col4    col5    col2    col6    col3
Abc     12.8    8       left    1       15.7
Def     13.8    9       top     0       19.7
gef     14.8    9       left    0       19.7
Dgf     12.3    9       right   4       99.6
cef     16.8    4       right   0       89.7
baf     32.8    7       bottom  5       79.8
efg     16.8    5       right   0       56.7
etg     12.8    2       left    7       34.7

__END__

prints:

col1    col2    col3    col4    col5    col6
Abc     left    15.7    12.8    8       1
Def     top     19.7    13.8    9       0
gef     left    19.7    14.8    9       0
Dgf     right   99.6    12.3    9       4
cef     right   89.7    16.8    4       0
baf     bottom  79.8    32.8    7       5
efg     right   56.7    16.8    5       0
etg     left    34.7    12.8    2       7

david
-- 
sub'_{print"@_ ";* \ = * __ ,\ & \}
sub'__{print"@_ ";* \ = * ___ ,\ & \}
sub'___{print"@_ ";* \ = * ____ ,\ & \}
sub'____{print"@_,\n"}&{_+Just}(another)->(Perl)->(Hacker)

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to