Thread Datenzeilen einlesen
(6 answers)
Opened by qwe123qwe at 2013-10-08 23:10
Guten Abend !
Da ich (obwohl Seltennutzer) hin und wieder wegen der Gleitkommaproblematik an die Grenzen der Bash stoße bin ich am Ausprobieren von Perl -- also blutiger Anfänger. Derzeit habe ich folgende Aufgabe: ich möchte aus einer Textdatei einen Block mit Datenzeilen auslesen, die alle das Format haben wie folgt: 08:29:55 140,14 2.045 15.001 08:29:44 140,15 313 10.981 08:29:43 140,15 65 14.950 (die letzte Zahl ist mit MEHREREN Leerzeichen getrennt) Über und unter diesem Block gibt es eine variable Anzahl von Zeilen, die mich nicht interessieren. Die Datenzeilen möchte ich - als Textdatei abspeichern - (in einem Tabellenprogramm/Datenbank) konsoldieren - eventuell auch in Perl konsolidieren, falls das sinnvoll ist - die konsolidierten dann mit Perl weiterverarbeiten. Nach einigem Lesen in Büchern und hier im Board raucht mir etwas der Kopf, deshalb die Fragen hier.... Ich würde derzeit so vorgehen : - die Eingangs- und Ausgangsdateien öffnen - mit einer while-Schleife die Eingangsdatei zeilenweise einlesen - Überspringen der unnötigen Zeilen mit next unless - hier Fallunterscheidung mit regex - Prüfung (Zeilenanfang ist Uhrzeit bei den Zeilen im Block) - print in Ausgabedatei - Schließen der Dateien die Fragen : 1. gibt's da auch für Anfänger geeignete bessere/einfachere Wege (bis tie::File bin ich nocht nicht gekommen :-)) )? 2. gibt's in Perl eventuell einen Trick, das ZEITFORMAT am Zeilenanfang anstelle regex als Kriterium zu nutzen ? 3. die print-Anweisung ist ja innerhalb der Schleife -- wann speichert Perl denn die Zeilen physikalisch ab, d.h. wieviele Schreibzugriffe finden statt ? 4. der Block sieht ja sehr nach csv aus und hier im Forum habe ich ein paar Threads mit DBI:CSV gelesen -- würde das (zu einem späteren Zeitpunkt) Sinn machen, das mit einzubauen ? Gibt's da eine Faustregel, wann das sinnvoll ist ? Vielen Dank schon mal für's Anschauen ! |