linux-l: nochmal Perl
Ulrich Wiederhold
U.Wiederhold at gmx.net
Do Jan 18 13:24:05 CET 2001
Hallo,
nochmal perl...ich will das jetzt ausbauen und komme beim Speichern der
Datei nicht weiter.
Bisher: 1. Zeile soll entfern werden:
...
foreach $location (@locations)
{
open(TOGET, "<$location");
open(DEL, ">$location.new");
while(<TOGET>)
{
next unless($.-1);
print DEL;
}
close(TOGET);
close(DEL);
rename "$location.new", "$location";
$i++;
}
...
Problem ist jetzt, daß ich nochmal überprüfen will (muß), ob die erste
Zeile auch korrekt ist, also ob sie auch den String $string enthält.
Außerdem kann string entweder mit " " zwischen den Wörtern oder mit "_"
zischen den Wörtern daherkommen... (taps taps), muß also beides getestet
werden...
Also sowas in der Art
if($zeile =~ /\Q$s t r i n g/i oder $zeile =~ /\Q$s_t_r_i_n_g/i){ do
delete} else {next}
bzw.
next unless(!($ enthält $s t r i n g oder $s_t_r_i_n_g)
So, nun wieder ein Beispiel (für Jens! :))) ):
Angenommen...
$string = "Dies ist ein String" oder $string = "Dies_ist_ein_String"
dann soll nur die Zeile in der Datei gelöscht werden, die $string
enthält. Ich weiß dabei vorher nicht, in welcher Form $string vorliegt.
Weder in der Datei, noch in der Variable.
Hmmm, hoffe das wird jetzt langsam komplizierter, damit es für Euch
nicht so langweilig ist....
:)
Gruß
Uli
P.S.: Ach ja, Jens... schaffst Du das in einer Zeile!?
Mehr Informationen über die Mailingliste linux-l