У меня есть эти 2 текстовых файла, и я хотел бы найти какое-либо несоответствие для 2-го столбца между файлами. Несоответствие, которое должно быть идентифицировано, основано на типе F ,P and N
независимо от того, какие строки они встречаются. У меня 1F, 3P в первом файле, а 2P, 1N и 1F во втором файле. При сравнении, оба файла должны иметь одинаковое появление типов 1F, 3P и 1N.Найти несоответствие 2-го столбца между 2 текстовыми файлами
Текст1
f0x11 F
f0x34 P
drx99
dex67 P
edx43 P
sdx33
Текст2
1 P
2 N
4
5 F
6
7 P
Ожидаемый результат:
Text 1 has missing type of N
Text 2 has missing type of P
То, что я пытался до сих пор не дает желаемых результатов.
код:
use strict;
my %ref_data;
my %ref_data2;
open my $fh, '<', 'Text1' or die "Could not open file to read:$!";
while (<$fh>) {
chomp;
my ($res, $type) = split;
if (defined $type){
$ref_data{$type} = "$type";
}
}
our ($data,$data2);
open $fh, '<', 'Text2' or die "Could not open file to read:$!";
while (<$fh>) {
chomp;
my ($res, $type) = split;
if (defined $type){
$ref_data2{$type}= "$type";
$data2= $ref_data2{$type};
$data = $ref_data{$type};
print "File 2 has missing type of $type\n" unless $data;
}
}
foreach ($data){
print "File 1 has missing type of $_\n" if $data ne $data2;
}
Просьба посоветуйте мне. Заранее спасибо. – annel
Я не вижу, как вы получите ожидаемый результат выше от ваших входных данных. Оба ваших входных файла имеют один F, только на разных строках: почему ваш вывод говорит, что только один из них имеет «отсутствующий тип F»? –
@llmari это была ошибка типографии. – annel