Pytanie : Unix Skorupa pismo lub Perl pismo dwa csv tekst kartoteka opierać się na błonie wpisywać kolumna


I mieć the następujący 2 tekst kartoteka (z ich kolumna oddzielać przecinek)
& I potrzebować.  File2 mieć wszystkie the klucz (ie the pierwszy kolumna) wartość
file1 ale oba kartoteka sortować.  W Ten Sposób wszystkie the klucz (ie 1st kolumna) wewnątrz
file1 być podzbiór the klucz znajdować w file2.

file1:
INC00023233, opis (1) tekst, odpowiadać (1) tekst, ....., odpowiadać (1) tekst
INC00023132, opis 2 tekst, odpowiadać 2 tekst, ....., odpowiadać 2 tekst
INC00023073, opis 3 tekst, odpowiadać 3 tekst, ....., odpowiadać 3 tekst
INC00023573, opis 4 tekst, odpowiadać 4 tekst, ....., odpowiadać 4 tekst
........


file2:
INC00011312, data początkowa fieldA, data końca fieldA
......
INC00023233, data początkowa fieldB, data końca fieldB
PBI00023232, data początkowa fieldC, data końca fieldC
......
INC00023073, data początkowa fieldD, data końca fieldD
......
INC00023132, data początkowa fieldE, data końca fieldE
.....
INC00023573, data początkowa fieldF, data końca fieldF
.....


I polubić the podążać 2 kartoteka kartoteka że the wynikający wcielać csv kartoteka być podążać:
INC00023233, opis (1) tekst, odpowiadać (1) tekst, ....., odpowiadać (1) tekst, data początkowa fieldB, data końca fieldB
INC00023132, opis 2 tekst, odpowiadać 2 tekst, ....., odpowiadać 2 tekst, data początkowa fieldE, data końca fieldE
INC00023073, opis 3 tekst, odpowiadać 3 tekst, ....., odpowiadać 3 tekst, data początkowa fieldD, data końca fieldD
INC00023573, opis 4 tekst, odpowiadać 4 tekst, ....., odpowiadać 4 tekst, data początkowa fieldF, data końca fieldF
….



The UNIX I biegać być Redhat 4 ale I mieć HP-UX B11.11 (Perl tłumacz być wewnątrz
the Redhat serwer ale I być zbyt pewny o the HP-UX serwer), więc the pismo
pod warunkiem, że potrzeba sprawnie na tamte platforma

Odpowiedź : Unix Skorupa pismo lub Perl pismo dwa csv tekst kartoteka opierać się na błonie wpisywać kolumna

Przypuszczać tam  żadny przecinek w the różnorodny pole i.e opis, Etc. zawierać przecinek.

Prosty metoda można mysql i the pierwszy kartoteka i wtedy emisyjny aktualizacja z dane od the drugi kartoteka.

Ty móc the wydajność w kartoteka i ono.
W tym wypadku upewniać się #! /usr/local/bin/perl przy the wierzchołek the kartoteka i (1); przy the końcówka the wydajność kartoteka więc ty dostawać błąd gdy ty wymagać the kartoteka dokąd the hash przechować.
(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:
#! /usr/local/bin/perl
$file1= " ścieżka filename1 ";
mój $hash= {};
otwierać (File1, ")<> {
chomp ();
@array=split (/,/, $_);
#The pod budowa odnosić się hash hashes
$hash-> {$array [(0)]} {"istnieć"} =1;
$hash-> {$array [(0)]} {"opis (1) próbny"} =$array [(1)];
$hash-> {$array [(0)]} {"pole (1) próbny"} =$array [2];
$hash-> {$array [(0)]} {"pole 2 próbny"} =$array [3];
.
.
.
}
#done z file1.
zakończenie (File1);
otwierać (File2, ")<> {
chomp ();
@array=split (/,/, $_);
jeżeli (istnieć $hash-> {$array [(0)]} {"istnieć"} i $hash-> {$array [(0)]} {"istnieć"} ==1) {
$hash-> {$array [(0)]} {"pierwszy pole od drugi kartoteka"} =$array [(1)];
$hash-> {$array [(0)]} {"po drugie pole"} =$array [2];
$hash-> {$array [(0)]} {"trzeci pole"} =$array [3];
.
.
.
.
}

}
#done z przerobowy kartoteka gdy tam  być dopasowywanie klucz.
zakończenie (File2);

#you teraz mieć $hash który być odniesienie hashes.
foreach $key (klucz % {$hash}) {
#    druk "$key: $hash-> {$key} \ n";
        foreach $index (klucz % {$hash-> {$key}}) {
           druk "\ $hash-> {"$key"} {"$index"} =$hash-> {$key} {$index} \ n";
        }
}
Inne rozwiązania  
 
programming4us programming4us