Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re: Rearranging columns in multiple text files

by reisinge (Hermit)
on Mar 18, 2013 at 13:32 UTC ( [id://1024033]=note: print w/replies, xml ) Need Help??


in reply to Rearranging columns in multiple text files

Hi, let's suppose we have tab-separated data like that in the lines after the __DATA__ token and we want to swap columns two and three:

use strict; use warnings; while (<DATA>) { # go through data line by line chomp; # don't forget to remove newline character my @fields = split /\t+/; print join "\t", # join fields with tab @fields[ 0, 2, 1 ], # select fields using array slice "\n"; } __DATA__ Col1 Col2 Col3 a b c 1 2 3

To work with files, just

  • add $^I = ".bak"; before the while loop to edit files in place keeping backups
  • replace <DATA> with <> (diamond operator)

and then run the program like this:

$ perl script.pl *.dat

Excellence is an art won by training and habituation: we do not act rightly because we have virtue or excellence, but we rather have these because we have acted rightly. -- Will Durant

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1024033]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others romping around the Monastery: (1)
As of 2024-04-25 01:09 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found