Am Dienstag, 10. Februar 2004 15:48 schrieb Christian Augustat:
Ich möchte mittels AWK 2 Textdateien miteinander vergleichen,komme aber nicht wirklich weiter, weil ich nicht weiss wie ich nun die 2. Datei innerhalb eines AWK scripts einlese.
Ich möchte mittels eines in der 1. Datei gefunden schlüssels ( ich bastel mir eine REGEX ), in der 2. Datei suchen und wenn ich Treffer bekomme, dann möchte ich den Schlüssel aus der 1. Datei verändern. Also eigentlich nicht sonderlich schwierig - mir fehlt leider da ein Lösungsansatz in AWK.
Den Tipp mit getline hast Du ja schon bekommen - aber das willst Du nicht wirklich ;) - ich weiss zwar nicht, wie groß Deine Dateien sind, aber spätestens bei 4-stelligen Zeilennummern liest Du wenn Du Pech hast Millionen von Zeilen ein. Sowas würde ich in Perl machen: relevante Teile von Datei 2 in einen hash einlesen und dann nur 1x Datei 1 einlesen, im Hash suchen und bei einem Treffer ändern. Das bringt bei geeigneter Wahl des Keys im Hash einen Performance-Vorteil von n*1000 (kein Vertipper, ich hab so was Ähnliches vor ein paar Monaten mal bei einem Kunden mit Dateien von mehreren 10.000 Sätzen gemacht - Shell : Perl = 3 Stunden : 7 Minuten). Wenn Du die Anforderungen genauer beschreibst, helfe ich Dir gern mit geeigneten Perl-Scripts weiter - am besten per PM, das Ergebnis können wir dann ja in der Liste kundtun ;) Jan