Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re: String replacement preparation for file comparison

by roboticus (Canon)
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

TJRandall:

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 squidge.pl #!/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.

...roboticus

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
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:

    CREATE OR REPLACE FUNCTION "TRON2000"."<name>" AS.

    Thank you again!

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (6)
As of 2014-09-03 02:49 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite cookbook is:










    Results (35 votes), past polls