wie Datei splitten?

14/11/2009 - 15:00 von Astrid Kuhr | Report spam
Hallo!

Habe eine groessere Datei, die aus Zeilenbloecken
besteht.
Jeder Block hat eine Titelkarte und dann kommen Zeilen
mit Zahlen.
Jeder Block hat unterschiedlich viele Zeilen.
Ich moechte die grosse Datei splitten, dass jeder
Block anschliessend in einer eigenen kleinen Datei steht.

Die Titelkarte besteht aus Buchstaben (mixed case) und Zahlen.

Aber auch die Zeilen mit den Zahlen enthalten leider nicht nur
Zahlen, weil diese im wissenschaftlichen Format dort stehen,
also neben [0..9] auch noch +-.E enthalten.
Die Titelkarte kann aber auch ein E enthalten.

Ein Beispiel fuer die Zahlenzeilen:

3.12870E+00 7.05570E+00 6.37200E+00 2.48330E+00 8.59200E-01 3.96730E-01
1.87960E-01 7.53420E-02 8.22110E-02 7.10710E-02 4.82120E-02 1.46620E-02

Wie kann man so eine Titelkarte erkennen und die Datei dann entsprechend
splitten?

Gruss, Astrid
 

Lesen sie die antworten

#1 André Pletschette
27/04/2010 - 08:37 | Warnen spam
Hallo,

Man müsst hier wissen um welches Split-Kriterium es sich handelt!

Wenn es sich um eine leere Zeile handelt, kann man überprüfen mit

while (<>) {
if (/\S/) {
// ein nicht space-char is vorhanden, normal
print OUTPUT $_;
} else {
close OUTPUT;
open OUTPUT "xxx".i++;
}
}


On 11/14/2009 3:00 PM, Astrid Kuhr wrote:

Hallo!

Habe eine groessere Datei, die aus Zeilenbloecken
besteht.
Jeder Block hat eine Titelkarte und dann kommen Zeilen
mit Zahlen.
Jeder Block hat unterschiedlich viele Zeilen.
Ich moechte die grosse Datei splitten, dass jeder
Block anschliessend in einer eigenen kleinen Datei steht.

Die Titelkarte besteht aus Buchstaben (mixed case) und Zahlen.

Aber auch die Zeilen mit den Zahlen enthalten leider nicht nur
Zahlen, weil diese im wissenschaftlichen Format dort stehen,
also neben [0..9] auch noch +-.E enthalten.
Die Titelkarte kann aber auch ein E enthalten.

Ein Beispiel fuer die Zahlenzeilen:

3.12870E+00 7.05570E+00 6.37200E+00 2.48330E+00 8.59200E-01 3.96730E-01
1.87960E-01 7.53420E-02 8.22110E-02 7.10710E-02 4.82120E-02 1.46620E-02

Wie kann man so eine Titelkarte erkennen und die Datei dann entsprechend
splitten?

Gruss, Astrid

Ähnliche fragen