У меня есть скрипт для сравнения 2 файлов и распечатки совпадающих строк в файле.что я хочу добавить логику, чтобы помочь мне определить, как долго эти устройства соответствуют.в настоящее время я добавляю начальную точку 1, поэтому хочу увеличивать это число каждый раз, когда сценарий запускается и сопоставляется.
Пример.
inputfile: - ########################
retiredDevice.txt
Альфа
Бета
Гамма
Дельта
prodDevice.txt
первый
второй
третий
вперед
Гамма
Дельта
выходной файл: - #######################
final_result.txt
1 Дельта
1 Гамма
Моя цель состоит в том, чтобы добавить встречную отметку на каждой соответствующей строке, чтобы определить, какдолго "дельта" и "гамма" совпали.скрипт работает каждую неделю.поэтому каждый раз, когда скрипт запускает добавление 1, когда я проверяю 'finalResult.txt.результат должен выглядеть следующим образом:
Delta 4
Gamma 3
результат показывает, что Delta соответствовала за последние 4 недели и Gamma за последние 3 недели.
#! /usr/local/bin/perl
my $ndays = 1;
my $f1 = "/opt/retiredDevice.txt ";
my $f2 = "prodDevice.txt";
my $outfile = "/opt/final_result.txt";
my %results = ();
open FILE1, "$f1" or die "Could not open file: $! \n";
while(my $line = <FILE1>){ $results{$line}=1;
}
close(FILE1);
open FILE2, "$f2" or die "Could not open file: $! \n";
while(my $line =<FILE2>) {
$results{$line}++;
}
close(FILE2);
open (OUTFILE, ">$outfile") or die "Cannot open $outfile for writing \n";
foreach my $line (keys %results) {
my $x = $ndays;
$x++;
print OUTFILE "$x : ", $line if $results{$line} != 1;
}
close OUTFILE;
Заранее спасибо за любую помощь!