User since
2006-05-19
7
Artikel
BenutzerIn
Hallo Leute,
Ich habe eine 10 bis 20 MB grosse Datei mit jeder Menge Daten drin... ca. alle 10-30 Zeilen steht am Anfang der Zeile "DATA". Jetzt bräuchte ich ein Script, welches Nach "DATA" sucht dann sämtliche Zeilen bis zum nächsten "DATA" rauskopiert und jeweils in ein Extra File schreibt. Aber da das ja tausend files wären, will ich oben noch ne Variable einbauen, mit der ich dann die Anzahl der Sätze steuern kann.
z.B. 20, damit dann in jedem extra File 20 mal die kopierten "DATA" Sätze stehen hab. ( Natürlich mit den kopierten Zeilen zwischen den "Data" Sätzen ;) )
Hört sich evtl. garnichtma so schwer an, aber wahrscheinlich hab ich nen knick in der Logik...
Ich hoffe jemand kann mir weiter helfen und sag schonma vielen Danke Leute!
Grüße moep
User since
2006-05-19
7
Artikel
BenutzerIn
Morgen,
erstma vielen dank, das das so fix ging. Bekomme leider ne Fehlermeldng beim ausführen. Jemand noch ne Idee?
C:\PXPerl\bin>perl split.pl
Global symbol "@entries" requires explicit package name at split.pl line 31.
Execution of split.pl aborted due to compilation errors.
User since
2003-08-15
692
Artikel
BenutzerIn
Dann sind die angemekerten Variablen nicht mit my deklariert.
$SIG{USER} = sub {love 'Perl' or die};
User since
2003-08-04
14371
Artikel
ModeratorIn
Nimm das
my @entries = (); an den Anfang vom Skript (nach
my $dir = ...)
User since
2006-05-19
7
Artikel
BenutzerIn
jo, hab die variablen deklariert ...
jetztm üsste noch n kleiner fehler in Zeile 18 sein... "bad name". Ich sehe da keinen Fehler.
C:\PXPerl\bin>perl script.pl
Bad name after DATA' at script.pl line 18.
$entry = 'DATA' . $entry unless($entry =~ /^DATA/);
User since
2003-08-04
2145
Artikel
ModeratorIn + EditorIn
Ich vermute, dass irgendwo weiter oben ein vereinsamtes ' steht.
User since
2006-05-19
7
Artikel
BenutzerIn
hmmm... ich glaube nicht... mehr meckert er net an...
User since
2003-08-04
12208
Artikel
Admin1
also ich kann
genau den fehler reproduzieren, wenn ich schreibe:
$entry = DATA' . $entry unless($entry =~ /^DATA/);
=>
Bad name after DATA' at test.pl line 2.
also bitte das nächste mal ordentlich copy & pasten =)
User since
2006-05-19
7
Artikel
BenutzerIn
ich hab oben doch die Zeile ausm script hier reinkopiert... siehst du da etwa kein ' ???
das ' ist drin.