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