Filehandling
Yves Sturzenegger
- perl
0 Christian Kruse0 micha
Hallo zusammen,
Kann ich aus einem Textfile bestimmte Zeile löschen?
Oder muss ich zuerst das ganze Textfile in einen Array lesen und dann alles zurückschreiben ausser diese bestimmte Zeile?
Beispiel:
1. Zeile: Hund
2. Zeile: Hase
3. Zeile: Pferd
Nun möchte ich die Zeile mit dem "Hase" löschen, damit das File nochher so aussieht:
1. Zeile: Hund
2. Zeile: Pferd
Geht das?
Grüsse, Yves
Tag,
Kann ich aus einem Textfile bestimmte Zeile löschen?
Ja, sicher :-)
Oder muss ich zuerst das ganze Textfile in einen Array lesen und
dann alles zurückschreiben ausser diese bestimmte Zeile?
Nun, in einen Array wuerde ich das nicht lesen. Aber das Prinzip
stimmt, ja.
Beispiel:
File.txt
- Zeile: Hund
- Zeile: Hase
- Zeile: Pferd
Nun möchte ich die Zeile mit dem "Hase" löschen, damit das File
nochher so aussieht:
- Zeile: Hund
- Zeile: Pferd
Geht das?
Klar:
open DAT,'<datei1' or die $!;
open NEW,'>datei2' or die $!;
while(<DAT>) {
if($_ ne 'Hase') {
print NEW $_;
}
}
close DAT;
close NEW;
rename 'datei2' => 'datei1';
Das kann man noch geringfuegig optimieren, aber ich glaube nicht,
dass sich das lohnt.
Gruesse,
CK
rename 'datei2' => 'datei1';
kleine anmerkung:
wenn man die temporäre Datei (datei2) kopiert und danach löscht erhält man sich die alten Dateiattribute
ciao
Micha