Pokaż wyniki 1 do 2 z 2

Temat: pętla perl

  1. #1
    Zarejestrowany
    Oct 2012
    Postów
    7

    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
    Zarejestrowany
    Oct 2012
    Postów
    7

    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

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52