Конечно слегка оффтоп, но еслиб передо мной стояла такая задача, я бы ударил по ней всей мощью perl. Ну или да на bash как господин pva предлагает, тем более что в bashe инструментов предостаточно для таких вот задач. А С++ или Pascal для такой фигни не стал бы использовать, если конечно не нужно эту задачу решать часто и быстро.
Вот покурил минут 5 вот такой код:
Код:
#find_eq.pl
my $fn1 = "file1_15gb.txt"; #имя первого файла
my $fn2 = "file2_15gb.txt"; #имя второго файла
my $outfile = "out.txt"; #имя выходного файла
open FILE1,"$fn1" or die; #открываем файлы на чтение
open FILE2,"$fn2" or die;
open OUT,">$outfile" or die; #открываем выходной файл на запись
while (not eof) { #выполняем пока не конец одного из фалов
$str1 = <FILE1>; # читайем строчки их фалов в переменные str1 и str2
$str2 = <FILE2>;
chomp($str1); # убираем символы конца строки
chomp($str2);
#если строки не совпадают то пишем на выход
#с указанием из какого файла все прочитано
if (not($str1 eq $str2)){
print OUT "$fn1 - $str1\n";
print OUT "$fn2 - $str2\n";
}
}
мощи Perl конечно в коде немного, и на файлах он 15 гиговых не проверялся, но думается мне работать будет, но долго, зато написано за 5 минут.