пожалуйста, помогите.Я очень плохо знаком с Perl и программированием, у меня большой файл с 15 столбцами, а в некоторых отсутствует информация.То, что я пытаюсь сделать, это выбрать столбец [13] с отсутствующей информацией и столбец [4] без отсутствующей информации;а затем используйте столбец [4] в качестве ключа для сопоставления с столбцом [2] и распечатайте все строки в столбце [2].
Вот как выглядит мой файл данных (с разделителями табуляции):
BC000 1 1 2 3 F 3 51 51
BC000 0 2 M 999
BC000 0 3 37 36 F 65
BC000 0 4 2 3 M 50 50
BC000 0 5 2 3 F 45 47 46
BC000 0 6 2 3 F 3 42
BC000 0 7 2 3 M 999
BC000 0 8 2 3 F 3 42
BC000 0 9 2 3 F 1 39
BC000 0 10 2 3 F 3 35
BC000 0 11 45 8 M 11
BC000 0 12 45 8 F 9
У всех motherIDs, столбца [4] будет индивидуальный идентификатор, столбец [2] (такой же, как motherID)
Вот мой код:
#!/usr/bin/perl
use warnings;
use strict;
my $filename = 'file.txt';
open (FILE, "<", $filename) or die "Cannot open file $!";
my @data = <FILE>;
my @column;
my $motherID;
foreach my $line (@data)
{
@column = split ( /\t/, $line);
if ($column[13] eq "" && $column[4] ne "" ) #missing YOB, but with mother ID
{
$motherID = join($column[2],$column[4]);
if ("$motherID" eq "$column[2]")
{
print "$line\t\n";
}
}
}
Я пробовал это, но он не возвращает никаких значений.Можете ли вы помочь?Я действительно новичок в этом, я пытаюсь написать скрипт, чтобы избежать отображения столбцов вручную в MS Excel, так как это большой файл с более чем 4000 строк.Большое спасибо заранее!