Pokaż wyniki 1 do 2 z 2

Temat: pętla perl

  1. #1

    Domyślnie pętla perl

    Mam do porównania 2 pliki
    technology.csv
    00:78:9E6:76:83;FTTH;6992826854
    00:78:9E6:79:FF;NEZ;1221346894
    itd...

    restarts.csv
    00:78:9E6:79:FF;2015/04/21 13:50:05
    2C:39:96:52:1E:67;2015/04/21 13:53:21
    itd...

    z 2 pliku wyciągam tylko te linie gdzie występuje macaddress z pierwszego pliku
    ale jak zrobić żeby przepisał z drugiego pliku odpowiednią linię i dołączył z pierwszego
    pliku odpowiadającą linię poza MACAddressem oczywiście żeby nie dublować czyli np:

    00:78:9E6:79:FF;2015/04/21 13:50:05; NEZ;1221346894

    robię to tak:

    #!/usr/bin/perl

    use strict;
    use warnings;


    my %UHD;
    my $mac_UHD;
    my $technology;
    my $video_id;
    open IN, "technology.csv";
    while (<IN>) {
    chomp;
    ($mac_UHD,$technology,$video_id) = split(/;/,$_);
    $UHD{$mac_UHD} = $_;

    }

    my $data;
    my $mac;
    open IN, "/restarts.csv";
    open OUT, ">/wynik_restarts.csv";
    while (<IN>) {
    chomp;
    ($mac, $data) = split(/;/,$_);
    if (defined $UHD{$mac})
    {
    print OUT "$mac;$data;$technology,$video_id;\n";
    }
    }

    ale jeżeli tak zrobie to owszem wybierze to co chcę ale zawsze dopisze wartość ostanią z pierwszego pliku.
    jak przerobić to w pętli żeby dopisywał wartości z odpowiedniej liniii pierwszego pliku a nie zawsze ostanią wartość z pętli pierwszej?

  2. #2

    Domyślnie

    poradziłem sobie można zamknąć

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj