How to exchange two columns in a table?

Rudy Vener salt at panix.com
Sun Jan 7 22:25:55 UTC 2007


OK. Try this one:

Contents of swap.pl:
#!/usr/bin/perl


while (<STDIN>)
{
chomp $_;
($col1, $col2) = split(/\t/,$_);
print "$col2\t$col1\n";
}
# end of swap.pl


On Sun, Jan 07, 2007 at 01:18:36PM +0800, coscell at mail.batol.net wrote:
> Many thanks! I got the following messages:
> 
> ./swap.pl: line 3: syntax error near unexpected token `)'
> ./swap.pl: line 3: `while(<STDIN>)'
> 
> Perl version is 5.8.8.
> On Sat, 6 Jan 2007, Rudy Vener wrote:
> 
> >If there is only one tab between fields you can use PERL like so:
> >
> >$ cat file | swap.pl > file2
> >
> >
> >
> >Where swap.pl contains:
> >
> >#/usr/bin/perl
> >
> >while(<STDIN>)
> >{
> >chomp $_;
> >($col1,$col2) = split(/\t/,$_);
> >print "$col2\t$col1\n";
> >}
> ># end of swap.pl file
> >
> >
> >The above assumes  that swap.pl is executable. chmod 755 it  after 
> >editing. It also
> >assumes there are only two columns in the file. If there are more, e.g. 4 
> >you will
> >ned to adjust the code accordingly, such as
> >($col1,$col2,$col3,$col4) = split(/\t/,$_);
> >and
> >print "$col2\t$col1\t$col3\t$col4\n";
> >
> >or whichever columns you want to swap.
> >
> >Rudy Vener
> >Pizza galaxy
> >http://www.pizzagalaxy.com
> >
> >
> >
> >On Sat, Jan 06, 2007 at 11:14:40PM +0800, coscell at mail.batol.net wrote:
> >>Thank you! It's just a tab-delimited text file.
> >>
> >>On Sat, 6 Jan 2007, Tim Chase wrote:
> >>
> >>>I think you'll have to provide a few more details:
> >>>
> >>>1) where is the table?  In a spreadsheet?  In a database?  In a 
> >>>text-file?
> >>>
> >>>2) If it's a spreadsheet or database, what flavor? (Gnumeric? Siag?  SC?
> >>>Oleo?  OpenOffice.org?  KOffice?  MySQL?  PostgreSQL?
> >>>SQLite? etc)
> >>>
> >>>3) If it's just a text file, how are columns determined?  Is it a CSV
> >>>file? (and if so, how is character escaping/quoting done?) Is it a
> >>>tab-delimited file?  Are the columns positional? (i.e. columns 1 through
> >>>10 are the first field, 11 through 15 are the next, etc)
> >>>
> >>>With the extra details, it should be pretty easy to find a solution.
> >>>
> >>>-tim
> >>>
> >>>
> >>>
> >>>_______________________________________________
> >>>Blinux-list mailing list
> >>>Blinux-list at redhat.com
> >>>https://www.redhat.com/mailman/listinfo/blinux-list
> >>>
> >>
> >>_______________________________________________
> >>Blinux-list mailing list
> >>Blinux-list at redhat.com
> >>https://www.redhat.com/mailman/listinfo/blinux-list
> >
> >_______________________________________________
> >Blinux-list mailing list
> >Blinux-list at redhat.com
> >https://www.redhat.com/mailman/listinfo/blinux-list
> >
> 
> _______________________________________________
> Blinux-list mailing list
> Blinux-list at redhat.com
> https://www.redhat.com/mailman/listinfo/blinux-list




More information about the Blinux-list mailing list