Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re: need help in editing multiple word in a file

by lancer (Beadle)
on Nov 18, 2012 at 21:06 UTC ( #1004459=note: print w/ replies, xml ) Need Help??


in reply to need help in editing multiple word in a file

I rewrote the code to make it work as described in your post.


replace_with_matches.pl

#!/usr/bin/perl use warnings; use strict; my $source = shift @ARGV; my $destination = shift @ARGV; my $matchfile = shift @ARGV; my @matches = (); open (MF, '<', $matchfile) or die $!; while (<MF>) { push @matches, $_; } close MF; # have a list of all matches my @input = (); open (IN, '<', $source) or die $!; while (<IN>) { push @input, $_; } close (IN); # have all input lines in an array my @output = (); NEXT_INPUT_LINE: for my $input_line (@input) { # check every input line 1 time NEXT_MATCH_PAIR: for my $match_pair (@matches) { my @DATA = split (/\s/, $match_pair); my $matcher = $DATA[0]; my $replacer = $DATA[1]; # check all match pairs against 1 input line if ($input_line =~ /^$matcher/) { # make replacement $input_line =~ s/legend/$replacer/; push @output, $input_line; # jump to next input line next NEXT_INPUT_LINE; } } # if it gets here, there was no replacement # copy input line to output push @output, $input_line; } # have all replaced output in @output # write @output to $destination open (OUT, '>', $destination) or die $!; for my $output_line (@output) { print OUT $output_line; } close OUT;



Sample input files:


source.txt

lancer is a legend asdf asdfwerg asdf wergdfv legend pieces of trash line 4 is cool and makes no sense time for legends time for christmas jesus is a legend


matches.txt

l jerk j myth



Sample output:


result.txt

lancer is a jerk asdf asdfwerg asdf wergdfv legend pieces of trash line 4 is cool and makes no sense time for legends time for christmas jesus is a myth


Comment on Re: need help in editing multiple word in a file
Select or Download Code
Re^2: need help in editing multiple word in a file
by vkp (Novice) on Nov 19, 2012 at 17:33 UTC

    thanks for ur kind help. I m new in coding, it is really appreciable to explain each step for beginner

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (11)
As of 2014-10-01 18:26 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    What is your favourite meta-syntactic variable name?














    Results (32 votes), past polls