#!/usr/bin/perl $oldFile1 = $ARGV[0]; $newFile1 = $ARGV[1]; $oldFile2 = "unchanged.txt"; $changes1 = "changed.txt"; if (!$oldFile1) { printf("Error: No old file is provided\n"); exit(1); } if (!$newFile1) { printf("Error: No new file is provided\n"); exit(1); } open(OLDFILE1, $oldFile1) or die("Can't open $oldFile1 for input: $!"); open(NEWFILE1, $newFile1) or die("Can't open $newFile1 for input: $!"); open(OLDFILE2, ">$oldFile2") or die("Can't open $oldFile2 for output: $!"); open(CHANGES1, ">$changes1") or die("Can't open $changes1 for output: $!"); foreach () { $line1 = $_; chomp $line1; ($x,$y,$z,$a,$b,$c)=split(/\|/,$line1); foreach () { $line2 = $_; chomp $line2; ($x1,$y1,$z1,$a1,$b1,$c1)=split(/\|/,$line2); if ($x eq $x1) { print OLDFILE2 "$line1\n"; } else { print CHANGES1 "$line2\n"; } } } close(OLDFILE1); close(NEWFILE1); close(OLDFILE2); close(CHANGES1);