Я хочу сравнить два текстовых файла, которые я создал из одного из сценариев perl, которые я написал. Я хочу распечатать согласованные результаты из этих двух текстовых файлов. Я попытался рассмотреть пару ответов и вопросов, которые люди задавали в stackoverflow, но это не работает для меня. Вот что я пробовал.Сравнение двух текстовых файлов в perl и вывода согласованного результата
my $file1 = "Scan1.txt";
my $file2 = "Scan2.txt";
my $OUTPUT = "final_result.txt";
my %results =();
open FILE1, "$file1" or die "Could not open $file1 \n";
while(my $matchLine = <FILE1>)
{
$results{$matchLine} = 1;
}
close(FILE1);
open FILE2, "$file2" or die "Could not open $file2 \n";
while(my $matchLine =<FILE2>)
{
$results{$matchLine}++;
}
close(FILE2);
open (OUTPUT, ">$OUTPUT") or die "Cannot open $OUTPUT \n";
foreach my $matchLine (keys %results) {
print OUTPUT $matchLine if $results{$matchLine} ne 1;
}
close OUTPUT;
EXAPLE ВЫХОДА, что я хочу данных
FILE1.TXT данные 2 данные 3
file2.txt data2 data1
OUTPUT данных 1 данных 2
Что «не работает для вас»? Что происходит, что вы не хотите? Кроме того, вы придумали этот алгоритм? Что происходит, когда строка появляется несколько раз в FILE2? – Konerak
В настоящее время, если в файле2 есть дубликаты, он ТОЛЬКО распечатывает дубликаты файла2. Ex file2 имеет data1, data1, data1. Для моего final_result.txt я получаю только данные1. Я хочу иметь только согласованные результаты от file1 и file2. – Maxyie