Fråga : Unix Shell skrivar, eller Perl skrivar till csvtext för sammanfogning två sparar baserat på en nyckel- kolonn för allmänning


Jag har efter 2 som text sparar (med deras kolonner som avskiljs av komma)
& jag behöver sammanfogning dem.  File2 har alla stämm (ie den första kolonnen) värderar
av file1 men båda sparar sorteras inte.  Så alla stämm (kolonnen för ie 1st) in
file1 är en underdel av stämm funnit i file2.

file1:
INC00023233 text för beskrivning 1, sätter in 1 text, ....., sätter in 1 text
INC00023132 text för beskrivning 2, sätter in text 2, ....., sätter in text 2
INC00023073 text för beskrivning 3, sätter in text 3, ....., sätter in text 3
INC00023573 text för beskrivning 4, sätter in text 4, ....., sätter in text 4
........,


file2:
INC00011312 start daterar fieldA, avslutar daterar fieldA
......,
INC00023233 start daterar fieldB, avslutar daterar fieldB
PBI00023232 start daterar fieldC, avslutar daterar fieldC
......,
INC00023073 start daterar fieldD, avslutar daterar fieldD
......,
INC00023132 start daterar fieldE, avslutar daterar fieldE
.....,
INC00023573 start daterar fieldF, avslutar daterar fieldF
.....,


Jag skulle något liknande till sammanfogning som de ovannämnda 2na sparar sådan att den resulterande applicerade csven sparar är som följer:
INC00023233 text för beskrivning 1, sätter in 1 text, ....., sätter in 1 text, start daterar fieldB, avslutar daterar fieldB
INC00023132 text för beskrivning 2, sätter in text 2, ....., sätter in 2 text, start daterar fieldE, avslutar daterar fieldE
INC00023073 text för beskrivning 3, sätter in text 3, ....., sätter in 3 text, start daterar fieldD, avslutar daterar fieldD
INC00023573 text för beskrivning 4, sätter in text 4, ....., sätter in 4 text, start daterar fieldF, avslutar daterar fieldF
.



Förmiddagspringet för UNIX I är en Redhat 4, men jag har HP-UX B11.11 (Perl-tolkaren är in
de Redhat serverorna men I-förmiddag inte för sure om HP--UXserverorna), så skriva
provided behov att vara kompetent att köra på de plattformar

Svar : Unix Shell skrivar, eller Perl skrivar till csvtext för sammanfogning två sparar baserat på en nyckel- kolonn för allmänning

Antar där inga komman i det olikt sätter in dvs. beskrivning, Etc. inkluderar inte komman.

En kan enklare metod är att använda mysql, och att ladda första spara och utfärda därefter uppdateringar med data från understödja sparar.

Du kan lagra tillverkad i en spara och ladda den.
I detta fall se till att tillfoga nr.! /usr/local/bin/perl upptill av spara och 1en; på avsluta av tillverkad spara, så du får inte fel, när du kräver spara var pölsan lagras.
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:
nr.! /usr/local/bin/perl
$file1= " bana till filename1 ";
min $hash= {};
öppna (File1, ”<>) {
segrare ();
@array=split (/,/, $_);
nedanföra bygganden för #The en hänvisad till pölsa av pölsor
$hash-> {$array [0]} {”finns”}, =1;
$hash-> {$array [0]} {”beskrivning 1 testar”}, =$array [1];
$hash-> {$array [0]} {”sätta in 1 testar”}, =$array [2];
$hash-> {$array [0]} {”sätta in 2 testar”}, =$array [3];
.
.
.
}
#done med att bearbeta file1.
nära (File1);
öppna (File2, ”<>) {
segrare ();
@array=split (/,/, $_);
om (finns $hash-> {$array [0]} {”finns”}, och $hash-> {$array [0]} {”finns”}, ==1) {
$hash-> {$array [0]} {”sätta in först från understöder sparar”}, =$array [1];
$hash-> {$array [0]} {”understödja sätter in”}, =$array [2];
$hash-> {$array [0]} {”tredje sätter in”}, =$array [3];
.
.
.
.
}

}
#donen med att bearbeta sparar när där matchar stämm.
nära (File2);

#youen har nu en $hash som är en hänvisa till till pölsor.
foreach $key (stämm % {$hash}) {
nr.    tryck ”$key: $hash-> {} för $key \ n”;
        foreach $index (stämm % {$hash-> {$key}}) {
           tryck ”\ $hash-> {”$key”} {”$index”} =$hash-> {$key} {} för $index \ n”;
        }
}
Andra lösningar  
 
programming4us programming4us