pattern matching?? & in verzeichnis schreiben

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • pattern matching?? & in verzeichnis schreiben

    hey alle zusammen

    kleines problem mit der umsetzung meines skripts
    ich will aus einem verzeichnis alle datein auslesen -> geht auch
    ich will alle datein mit endung jpg suchen -> geht auch
    ich will diese datein umbennen -> geht auch
    in der ausgabe sind die datein umbennant


    wieso überschreibt er nicht die dateinamen in meinem verzeichnis????????


    wer kann mir auf die sprünge helfen?


    das skript:

    #!/usr/bin/perl -w

    use strict;

    my $verzeichnis = "F:\\Hardy\\test";
    my $dateiname = "";
    my $counter = 0;
    my $ersetzen = "bild-";


    #verzeichnis öffnen
    opendir(DIR, "$verzeichnis") or die "verzeichnis kann nicht gelesen werden!";

    while(defined($dateiname = readdir(DIR)))
    {
    $counter++;

    if( $dateiname =~ m/\w+\.jpg/ )
    {
    $dateiname =~ s/\w+/$ersetzen$counter/;
    print "\n$dateiname";
    }
    else
    {
    print "\n$dateiname ist keine jpg";
    }
    }

    closedir(DIR);



    die ausgabe:

    . ist keine jpg
    .. ist keine jpg
    bild-3.jpg
    bild-4.jpg
    bild-5.jpg
    bild-6.jpg
    hard-tux.png ist keine jpg
    bild-8.jpg
    jeditux.jpe ist keine jpg
    smallquake-tux.jpe ist keine jpg
    tux-wicked-1ty.gif ist keine jpg
    tux.jpe ist keine jpg
    Prozess erfolgreich beendet.
    gestern standen wir am abgrund heute sind wir einen schritt weiter

  • #2
    arbeite nun mit rename

    ist aber auch nicht das richtige, da es immer noch nicht geht

    #!/usr/bin/perl -w

    use strict;

    my $verzeichnis = "F:\\Hardy\\test";
    my $dateiname = "";
    my $counter = 0;
    my $name = "bild-";
    my $ersetzen = "";


    #verzeichnis öffnen
    opendir(DIR, "$verzeichnis") or die "verzeichnis kann nicht gelesen werden!";

    while(defined($dateiname = readdir(DIR)))
    {
    $counter++;

    if ( $dateiname =~ m/(.+)\.jpg/ )
    {
    $ersetzen = $name.$counter.".jpg";
    rename($verzeichnis.$dateiname, $verzeichnis.$ersetzen) or die $!;
    print "\n$dateiname in $ersetzen umbenennt!\n";
    }
    }

    closedir(DIR);
    gestern standen wir am abgrund heute sind wir einen schritt weiter

    Kommentar


    • #3
      isch habe fertig!!!!!!!!!!!

      #!/usr/bin/perl -w

      use strict;

      my $verzeichnis = "F:\\Hardy\\test\\";
      my $dateiname = "";
      my $counter = 0;
      my $name = "bild-";
      my $ersetzen = "";
      my $tmp = "";

      my @dateiname = ();


      #verzeichnis öffnen
      opendir(DIR, "$verzeichnis") or die "verzeichnis kann nicht gelesen werden!";

      while(defined($dateiname = readdir(DIR)))
      {
      $counter = $counter + 1;

      if ( $dateiname =~ m/\w+/ )
      {


      if ( $dateiname =~ m/.+\.jpg/ ||
      $dateiname =~ m/.+\.gif/ ||
      $dateiname =~ m/.+\.jpe/ ||
      $dateiname =~ m/.+\.png/)
      {


      $ersetzen = $name.$counter.".jpg";

      if (!rename($verzeichnis.$dateiname, $verzeichnis.$ersetzen))
      {

      print "\n$dateiname nicht in $ersetzen umbenannt!"; #. >> $!, $@\n = fehlerausgaben
      }
      else
      {
      print "\n$dateiname in $ersetzen umbenannt!\n";
      }
      }
      else
      {
      print "\n$dateiname ist keine jpg | gif | jpe!";
      }
      }
      }

      closedir(DIR);
      gestern standen wir am abgrund heute sind wir einen schritt weiter

      Kommentar

      Lädt...
      X