[Perl] bestimmte Inhalte von 2 Dateien vergleichen

anddie

Well-known member
ID: 171
L
3 Mai 2006
2.270
133
Hi,

ich habe 2 Dateien. Die eine enthält ca. 5-10 Werte, wo ich sämtliche Zeilen finden muss, die ebenfalls diese Werte enthalten.
Beide Dateien enthalten pro Zeile einige Werte, die mit Semikolon getrennt sind.

Struktur der Datei A (ca. 5-10 Zeilen)
Code ; Wert 1 ; Wert 2 ; unwichtige Werte

Struktur der Datei B (ca. 6000 Werte)
XXX ; Wert 1 ; Wert 2 ; YYY ; Relevantes Ergebnis ; ZZZ

Der Code in Datei A kann den Wert IP oder Name haben. Wenn es IP ist, interessierern mich aus Datei B nur alle Zeilen, wo der Wert 2 mit dem Wert 2 aus Datei A übereinstimmt.
Wenn der Code Name ist, interessiert es mich analog dazu mit Wert 1.

Derzeit habe ich es ganz pervers gelöst, indem ich einfach die Datei A öffne, Zeile für Zeile durchgehe und dabei jedesmal die Datei B öffne, komplett durchgehe und die Werte suche und dann wieder schließe.
Allerdings ist das nicht sonderlich schön bis zu 10x so eine Datei zu öffnen und zu schließen.
Ich habe nur keine Idee, wie man das mit einem Hash oder ähnlichem erledigen könnte (und ich habe auch keine Ahnung, wie man mit Perl ein Hash füllt und dann damit umgeht).

anddie
 
anddie schrieb:
Derzeit habe ich es ganz pervers gelöst, indem ich einfach die Datei A öffne, Zeile für Zeile durchgehe und dabei jedesmal die Datei B öffne, komplett durchgehe und die Werte suche und dann wieder schließe.
Allerdings ist das nicht sonderlich schön bis zu 10x so eine Datei zu öffnen und zu schließen.

10*6000 = 6000*10
Es würde auch ausreichen die erste in den Speicher zu lesen (weil sie kleiner ist) und die zweite nur einmal zu öffnen. Dann muss halt bei jeder Zeile (der 2. datei) geprüft werden ob die Suchkriterien (der 1.. Datei) zutreffen.