1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Software und Anwendungen
  3. Betriebssysteme

Das Umbenennen mehrerer Dateien

    • Linux
  • Flowyes
  • 23. Februar 2003 um 18:30
  • Unerledigt
  • Flowyes
    9
    Flowyes
    Mitglied
    Punkte
    750
    Beiträge
    116
    • 23. Februar 2003 um 18:30
    • #1

    hi leute,

    mein wunsch ist einen shell-script zu schreiben, der alle jpeg-dateien in einem gegebenen ordner automatisch umbenennt, und zwar beginnend mit 01.jpg, 02.jpg, usw... bis 99.jpg (oder je nachdem wieviele dateien es im ordner gibt). es würde sich echt auszahlen so was zu schreiben, denn die ganzen dateien manuell umzubenennen ist wirklich sehr unangenehm. :mad:
    fotos die ich von meiner kamera hochlade kriegen immer komische namen wie IMG_0001.jpg oder so. das will ich eben nicht.
    habt ihr da eine ahnung wie des am besten gehen könnte?

    The idea behind this technique is surprisingly simple: just go ahead and do whatever you want to without paying attention to what anybody else is doing. If there is a problem, worry about it later. (Many politicians use this algorithm, too) -- A. S. Tanenbaum, M. v. Steen, Distributed Systems

  • Zentor
    16
    Zentor
    Mitglied
    Reaktionen
    5
    Punkte
    2.710
    Beiträge
    506
    • 23. Februar 2003 um 19:19
    • #2

    Versuch mal 1-4a Rename
    http://www.1-4a.com/rename/
    mfg Zentor

  • CitizenX
    1
    CitizenX
    Gast
    • 23. Februar 2003 um 19:45
    • #3

    http://download.com.com/3000-2034-7729054.html?tag=lst-0-1

    Greets X :coolsmile

  • Jimmy
    7
    Jimmy
    Mitglied
    Reaktionen
    1
    Punkte
    476
    Beiträge
    88
    • 23. Februar 2003 um 19:46
    • #4

    Flowyes: http://www.artis.uni-oldenburg.de/books/Linux-Ei…ung/node65.html das tar.gz Beispiel unten einfach auf jpeg anwenden.

    Cyrill ist das nicht fuer Window? oder gibts das auch fuer linux?

    Der beste Beweis, dass ausserirdische Intelligenz existiert, ist der dass bis jetzt noch keiner Kontakt zu uns aufgenommen hat

  • Flowyes
    9
    Flowyes
    Mitglied
    Punkte
    750
    Beiträge
    116
    • 23. Februar 2003 um 23:02
    • #5

    Cyrill: das programm ist glaub ich tatsächlich nur für windows, obwohls freeware ist.
    tscherno: das programm das du vorgeschlagen hast tut eigentlich schon das was ich wollte, aber irgendwie kann ich damit keine laufende numerierung erhalten, ich hab die dokumentation mehrmals durchgelesen aber ich schaffs nicht. :hewa:
    jeuneS2: diese sache überschreitet glaub ich mein wissen schon ein bissl. da gehts zwar auch genau um das automatisieren der umbenennungen aber ich kann einfach das problem mit der numerierung nicht lösen.
    wie soll ich denn in der for-schleife angeben dass die erste datei den namen 01.jpg und die zweite 02.jpg usw... bekommt??
    oder soll ich das vielleicht in einer while-schleife tun, wo ich eine laufvariable erzeug und die laufvariable bis zur anzahl der dateien gehen lasse. die anzahl der dateien im gegebenen ordner könnte ich mit `ls <directory> | wc -l ` herausfinden.
    was glaubt ihr???
    und den entsprechenden wert der laufvariable könnte dann in der while-schleife die entsprechende datei bekommen...
    würde so was funktionieren? es ist mir noch ein wenig unklar wie ich sowas als shell-script schreiben soll.

    The idea behind this technique is surprisingly simple: just go ahead and do whatever you want to without paying attention to what anybody else is doing. If there is a problem, worry about it later. (Many politicians use this algorithm, too) -- A. S. Tanenbaum, M. v. Steen, Distributed Systems

  • Flowyes
    9
    Flowyes
    Mitglied
    Punkte
    750
    Beiträge
    116
    • 24. Februar 2003 um 02:55
    • #6

    so, das problem hab ich schon gelöst. hier ist der script, wenn's irgendwen interessiert.
    jetzt kann ich schlafen gehen :zzz:

    The idea behind this technique is surprisingly simple: just go ahead and do whatever you want to without paying attention to what anybody else is doing. If there is a problem, worry about it later. (Many politicians use this algorithm, too) -- A. S. Tanenbaum, M. v. Steen, Distributed Systems

  • shabby
    7
    shabby
    Mitglied
    Punkte
    435
    Beiträge
    74
    • 24. Februar 2003 um 11:25
    • #7

    nur eine Anmerkung: dein Script funktioniert leider (und das ist so ne kleine Schwäche vom Shell-Script) nicht für Dateinamen mit Leerzeichen, da <space> als field seperator für die liste benutzt wird, die ls zurückliefert.
    selber kein shell script experte, kenn ich nur die triviale lösung mit
    $> for FILE # (für alle Argumente)
    und
    $> "$FILE" # (Anführungszeichen um die Argumente)
    im Body,
    Aufruf:
    $> imgren /mydir/*

    Oder mit Perl, da isses easy:

    Perl
    #!/usr/bin/perl
    my $counter = 0; my $dir = shift;
    opendir MYDIR, "$dir" or die "Can't open directory $dir: $!\n";
    my @files = readdir MYDIR;
    foreach (@files) {
        next if "$_" eq "$counter.jpg" || -d $_  || ! /\.jpg$/;
        $counter++ while -e "$counter.jpg";
        rename "$_","$counter.jpg" or die "Couldn't rename $_: $!\n";
    }    
    closedir MYDIR;


    (auch hier gehts sicherlich schöner)

    edit: ohne blöde klammern liest es sich gleich viel freundlicher

    mapM checkout [ http://lambda-the-ultimate.org/, http://blog.sigfpe.com/ , xkcd, Real World Haskell ]

  • Flowyes
    9
    Flowyes
    Mitglied
    Punkte
    750
    Beiträge
    116
    • 24. Februar 2003 um 11:36
    • #8

    Ioannis20x: du hast vollkommen recht. ich bin auch schon am anfang draufgekommen dass es mit perl viel einfacher gehen sollte, aber da kenn ich mich überhaupt nicht aus.

    übrigens hab ich noch einen schlimmen bug entdeckt. da hab ich die verbesserte form.

    mfg

    The idea behind this technique is surprisingly simple: just go ahead and do whatever you want to without paying attention to what anybody else is doing. If there is a problem, worry about it later. (Many politicians use this algorithm, too) -- A. S. Tanenbaum, M. v. Steen, Distributed Systems

  • Zentor
    16
    Zentor
    Mitglied
    Reaktionen
    5
    Punkte
    2.710
    Beiträge
    506
    • 24. Februar 2003 um 12:59
    • #9

    Ups, sorry mein Fehler. :frowning_face:
    Hab ich übersehen. Naja aber wie ich das so sehe hast du als Informatiker das Problem schon gelöst.
    mfg Zentor

  • psycho
    6
    psycho
    Mitglied
    Reaktionen
    1
    Punkte
    296
    Beiträge
    57
    • 24. Februar 2003 um 16:46
    • #10

    Ioannis20x also so geht es auch mit leerzeichen; ist zwar ein bißchen rudimentär, aber was solls :grinning_squinting_face:

    i=1;for j in *; do i=$[$i+1]; mv "$j" "$i.txt"; done

  • Spockman
    5
    Spockman
    Mitglied
    Punkte
    210
    Beiträge
    41
    • 24. Februar 2003 um 22:00
    • #11

    Die Standard-Lösung zum Umbenennen ist eine Pipe zu dem Programm xargs, geleitet über den Stream-Editor "sed" (damit kann man die Numerierung beibehalten). Etwa:

    ls *.jpg | sed -e p -e s/img// | xargs -n2 mv

    Ein "man sed" bzw. "man xargs" beschreibt die beiden Programme recht gut. Der Vorteil ist, dass man nicht auf eine bestimmte Shell angewiesen ist.

  • Flowyes
    9
    Flowyes
    Mitglied
    Punkte
    750
    Beiträge
    116
    • 24. Februar 2003 um 22:38
    • #12

    ich glaub dass auf dem gebiet noch viel zu lernen hab
    danke Spockman
    trotzdem bin ich froh, dass ich mein problem vollständig gelöst hab :grinning_squinting_face:

    The idea behind this technique is surprisingly simple: just go ahead and do whatever you want to without paying attention to what anybody else is doing. If there is a problem, worry about it later. (Many politicians use this algorithm, too) -- A. S. Tanenbaum, M. v. Steen, Distributed Systems

  • psycho
    6
    psycho
    Mitglied
    Reaktionen
    1
    Punkte
    296
    Beiträge
    57
    • 24. Februar 2003 um 22:45
    • #13

    also das ist ja mal wieder ein ordentlich kranker befehl :D,
    da muss man eine halbe stunde man-pages lesen, bis man checkt, worums geht...

  • bimbo
    15
    bimbo
    Mitglied
    Reaktionen
    15
    Punkte
    2.320
    Beiträge
    390
    • 19. Oktober 2003 um 21:39
    • #14

    ich wär auf der suche nach einem befehl, der mir die files in einem ganzen ordner + unterordner von "phtml" in "php" umbenennt. hab aber keine ahnung von perl, oder shell scripts.

    LVA Erfahrungsberichte: http://vowi.fsinf.at/

  • Maximilian Rupp 27. Dezember 2024 um 12:10

    Hat das Thema aus dem Forum Betriebssysteme nach Betriebssysteme verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung