Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses

Re: String replacement preparation for file comparison

by roboticus (Chancellor)
on Apr 06, 2012 at 13:47 UTC ( #963824=note: print w/ replies, xml ) Need Help??

in reply to String replacement preparation for file comparison


I recently had a problem where someone *radically* reformatted a package, and I had to add one of their patches to the non-screwed-up version. So to find the differences, I reformatted *both* versions and diffed the results. Then I could identify *what* the changes were, so I went back to my original version and applied the appropriate patch.

The reformatter was trivial: I eliminated all line breaks, then I inserted line breaks after each semicolon and comma, like so:

$ cat #!/usr/bin/perl use strict; use warnings; use File::Slurp; my $INFName = shift or die "Missing file name"; my $t = read_file($INFName); $t =~ tr/\n\r/ /; $t =~ s/;/;\n/g; $t =~ s/,/,\n/g; open my $FH, '>', $INFName . ".out" or die; print $FH $t, "\n";

Then I used GNU diff, telling it to ignore whitespace differences and such:

diff -abiwEB --strip-trailing-cr file1 file2

If you're just trying to identify files that differ, this might do the trick for you.


When your only tool is a hammer, all problems look like your thumb.

Comment on Re: String replacement preparation for file comparison
Select or Download Code
Replies are listed 'Best First'.
Re^2: String replacement preparation for file comparison
by TJRandall (Sexton) on Apr 06, 2012 at 14:04 UTC

    This is a great approach - thank you! This fixes my "other" compare problem (differences flagged in Text::Diff on carriage returns). I still have to figure out the first "fix" - taking the function/package/procedure name and making sure it is:


    Thank you again!

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (13)
As of 2015-12-01 19:22 GMT
Find Nodes?
    Voting Booth?

    My keyboard shows this many letters:

    Results (25 votes), past polls