Thread Einzeiler - gleiche Zeile in zwei Dateien
(6 answers)
Opened by guest at 2009-10-17 20:59 2009-10-18T09:45:40 leo11 Ich kannte den auch noch nicht und hab tatsächlich ne ganze Weile hinstarren müssen, bis er sich mir erschlossen hat, daher schreib ich mal, wie er funktioniert: Mit der Option "-n" wird über die Zeilen der ersten Datei aus @ARGV (also fileA) iteriert, nachdem dieser Dateiname aus @ARGV entfernt wurde. Wenn die Datei am Ende ist, wird die nächste aus @ARGV entfernt und dann wieder darüber iteriert (nun ist es fileB). An der aktuellen Größe von @ARGV -- entweder 0 oder 1 -- erkennt man also, in welcher Datei man gerade ist. Die Größe von @ARGV wird an den Wert aus dem %seen-Hash angehängt. Ganz am Ende enthält $seen{waldemar} also beispielsweise "11111000", wenn "waldemar" in der ersten Datei 5 mal und in der zweiten Datei 3 mal vorkommt. Die erste 0 wird angehängt beim ersten Antreffen der Zeile in der zweiten Datei. In diesem Moment matcht "10$" auf "111110", und die Zeile wird ausgegeben. Krasses Ding irgendwie.. mir fällt aber gerade auch nichts wirklich kürzeres ein. Update: Das Entfernen aus @ARGV richtiger beschrieben. Siehe auch "null filehandle" in perlop. Last edited: 2009-10-18 12:57:42 +0200 (CEST) Lieblingsmodule:
![]() ![]() |