Удаление повторяющихся значений из одного текстового файла и подсчет дублирующих значений

У меня есть два текстовых файла, которые являются выходными perl-скриптами. Первый текстовый файл содержит такие значения, как

1200 1215 1230 1245 1300 1315 1330 1345 1400

и второй текстовый файл содержит такие значения, как

1200 1200 1200 1215 1215 1230 1230 1230 1245 1245 1245 1300 1300 1300 1315 1315 1315 1330 1330 1345 1345 1400 1400 1400.

Я хочу удалить дубликаты из текстового файла2 и сравнить его с текстовым файлом1 и отобразить значения несоответствия и не дублировать значения в текстовом файле2. Например: я хочу отобразить "no.of 1200 в текстовом файле2 - 3, no из 1215 - 2..cc. Как написать Perl-код для этого?

2 ответа

foreach my $x (@arr1){
 my $cnt;
 print $out "no of $x is $cnt" if $cnt = grep (/$x/,@arr2);
}

это отредактировано ваш код из комментария.

#!/usr/bin/perl
use strict;
use warnings;
$\="\n";
open my $fh1, '<', 'textfile1.txt' or die $!;
open my $fh2, '<', 'textfile2.txt' or die $!;
open my $out, '>', 'output.txt' or die $!;
chomp(my @arr1=<$fh1>);
chomp(my @arr2=<$fh2>);

foreach my $x (@arr1){
 my $cnt;
 print $out "no of $x is $cnt" if $cnt = grep (/$x/,@arr2);
}
close $fh1;
close $fh2;
close $out

только тестовый код массива

#!/usr/bin/perl
use strict;
use warnings;
my @arr1=(1200, 1215, 1230, 1245, 1300, 1315, 1330, 1345, 1400);
my @arr2=(1200, 1200, 1200, 1215, 1215, 1230, 1230, 1230, 1245, 1245, 1245, 1300, 1300, 1300, 1315, 1315, 1315, 1330, 1330, 1345, 1345, 1400, 1400, 1400);

foreach my $x (@arr1){
 my $cnt;
 print "no of $x is $cnt\n" if $cnt = grep (/$x/,@arr2);
}


Вы используете Perl? Если нет, это очень легко сделать в Excel.

licensed under cc by-sa 3.0 with attribution.