Как отобразить данные из одного столбца на основе другого столбца в Perl - PullRequest
0 голосов
/ 06 июня 2018

пожалуйста, помогите.Я очень плохо знаком с 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 строк.Большое спасибо заранее!

...