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>