[gelöst] Umbenennen von vielen Dateien

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
seels

[gelöst] Umbenennen von vielen Dateien

Beitrag von seels » 08.10.2007 20:46:07

Moin moin!

Ich habe meinen alten Datenbestand von Windows auf mein Linux System kopiert und habe mich (der Konsolenfreundlichkeit wegen) entschieden alle Dateien nun klein zu benennen. Naja, spätestens bei den mp3s verzweifelt man.. Kennt jemand ein Programm, das alle in einem Ordner (+ Unterverzeichnisse) liegende Dateien gleich lässt, lediglich alle großen in kleine Buchstaben ändert...?

Gruß
seels
Zuletzt geändert von seels am 09.10.2007 10:26:50, insgesamt 1-mal geändert.

Pa D.
Beiträge: 285
Registriert: 17.04.2004 19:56:09

Beitrag von Pa D. » 08.10.2007 21:08:25

Hi

z.B mit tr

in etwa so

Code: Alles auswählen

for i in *[A-Z]*
do
mv $i `echo $i | tr A-Z a-z`
done
für Unterverzeichnisse müsste man da evtl. mit find was basteln.


Gruss
Dirk

Benutzeravatar
Woodrow
Beiträge: 88
Registriert: 19.11.2006 23:02:47
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Beitrag von Woodrow » 08.10.2007 21:13:13

kurz gegoogelt:
http://narutolinux.blogspot.com/2007/09/renamesh.html
obs funzt keine Ahnung. wollte es nur nich vorenthalten ;)

Benutzeravatar
Lohengrin
Beiträge: 3227
Registriert: 29.08.2004 00:01:05
Wohnort: Montsalvat

Beitrag von Lohengrin » 09.10.2007 00:51:22

Pa D. hat geschrieben:Hi

z.B mit tr

in etwa so

Code: Alles auswählen

for i in *[A-Z]*
do
mv $i `echo $i | tr A-Z a-z`
done
für Unterverzeichnisse müsste man da evtl. mit find was basteln.
Ja. In etwa.
Das ist Globbing und nicht Regex. Daher trifft *[A-Z]* alles was A oder - oder Z drin hat - außer es fängt mit . an. Wenn Leerzeichen oder gar Linefeed in den Dateinamen sind, gibt es auch Probleme.

rename ist ganz nett. Das kann mit Regex. Außerdem ist convmv zum umkodieren (von Latin1 auf UTF-8) hilfreich.

Benutzeravatar
Sam
Beiträge: 838
Registriert: 10.09.2002 11:02:45
Wohnort: Wuppertal

Beitrag von Sam » 09.10.2007 01:16:13

Der xfce Filemanager kann das. Allerdings weiß ich nicht, ab welcher Version. In Lenny ist 0.8 und wenn ich ihn mit "thunar -B" starte, kommt der Bulk Rename Dialog. Kannste also mit grafischer Oberfläche mehrere Dateien auf einmal umbennen.
Sowas gibbet aber wahrscheinlich auch für Nautilus (Gnome) und Konqueror (Kde) als Aktion, plugin oder vielleich eingebaut. Kenne mich aber leider mit KDE oder Gnome kaum aus.

Pa D.
Beiträge: 285
Registriert: 17.04.2004 19:56:09

Beitrag von Pa D. » 09.10.2007 02:02:25

Hi
Das ist Globbing und nicht Regex. Daher trifft *[A-Z]* alles was A oder - oder Z drin hat - außer es fängt mit . an.
Also dann dürfte mein Versuch eigentlich gar nicht gehen, aber warum funktioniert das?
Könntest du mir das erklären ? Ich will ja nicht doof sterben.
Da sind Namen dabei ohne A oder Z oder - .
Ok sind keine Leerzeichen drin, :wink: da hast du wohl recht da gibts evtl Probleme, aber das sollte ja auch nur ein Ansatz sein.

Gruss
Dirk

Code: Alles auswählen

dirk@schleppie:~/test/pinkFloyd$ ls
A_New_Machine_1.mid              Comfortably_Numb.mid      Have_a_Cigar.mid  Shine_On_Second_Half.mid  Time.mid
Another_Brick_in_the_Wall_2.mid  Dogs_of_War.mid           Money.mid         South_Hampton_Dock.mid    Two_Suns_in_the_Sunset.mid
Another_Brick_in_the_Wall.mid    Empty_Spaces.mid          One_slip.mid      The_Division_Bell.mid     Waiting_For_The_Worms.mid
Atom_Heart_Mother.mid.mid        Grandchester_Meadows.mid  On_The_Run.mid    The_Show_Must_Go_On.mid   Wish_You_Were_Here_Alt.mid
Comfortably_Numb_Alt2.mid        Great_Gig_in_the_Sky.mid  Sheep.mid         Thin_Ice.mid              Wots_Uh_The_Dealio.mid

dirk@schleppie:~/test/pinkFloyd$ for i in *[A-Z]*; do mv "$i" `echo "$i" | tr A-Z a-z`; done

dirk@schleppie:~/test/pinkFloyd$ ls
a_new_machine_1.mid              comfortably_numb.mid      have_a_cigar.mid  shine_on_second_half.mid  time.mid
another_brick_in_the_wall_2.mid  dogs_of_war.mid           money.mid         south_hampton_dock.mid    two_suns_in_the_sunset.mid
another_brick_in_the_wall.mid    empty_spaces.mid          one_slip.mid      the_division_bell.mid     waiting_for_the_worms.mid
atom_heart_mother.mid.mid        grandchester_meadows.mid  on_the_run.mid    the_show_must_go_on.mid   wish_you_were_here_alt.mid
comfortably_numb_alt2.mid        great_gig_in_the_sky.mid  sheep.mid         thin_ice.mid              wots_uh_the_dealio.mid

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Beitrag von ThorstenS » 09.10.2007 09:43:00

Es gibt mmv aus dem gleichnamigen Paket dafür! Das sorgt sich auch um Leer-Sonderzeichen, einfacher gehts nicht:

Code: Alles auswählen

mmv -v "*" "#l1"
Die 1 steht für den 1. gefundenen Begriff im 1. Argument von mmv (man kann auch Sachen wie "*_*" suchen, dann gibt es #1 und #2, die du beackern kannst).
das kleine L steht für lower. Mittels u (upper) kannst du auch Kleinbuchstaben in Grossbuchstaben verwandeln.

Beispiel:

Code: Alles auswählen

thorsten@dev:/tmp/mmvtest$ touch GROSS.mp3 Klein.MP3
thorsten@dev:/tmp/mmvtest$ ls
GROSS.mp3  Klein.MP3
thorsten@dev:/tmp/mmvtest$ mmv -v "*" "#l1"
GROSS.mp3 -> gross.mp3 : done
Klein.MP3 -> klein.mp3 : done
thorsten@dev:/tmp/mmvtest$ ls
gross.mp3  klein.mp3
thorsten@dev:/tmp/mmvtest$ mmv -v "*" "#u1"
gross.mp3 -> GROSS.MP3 : done
klein.mp3 -> KLEIN.MP3 : done
EDIT:
Ich habe das mal ins Wiki aufgenommen, evtl. hilft das zur Verbreitung des kleinen tools (was es übrigens schon seit mindestens der Zeit von SuSE 6.4 gibt)
Zuletzt geändert von ThorstenS am 09.10.2007 11:43:54, insgesamt 1-mal geändert.

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 09.10.2007 09:51:38

Sehr interessant.

Dass kannte ich auch noch nicht und scheint wohl wirklich eine der schnellsten und einfachsten Lösungen für das beschriebene Problem zu sein.
Oh, yeah!

seels

Beitrag von seels » 09.10.2007 10:26:34

Cool, danke ThorstenS, das ist genau das was ich gesucht habe!

Gruß
seels

Benutzeravatar
Lohengrin
Beiträge: 3227
Registriert: 29.08.2004 00:01:05
Wohnort: Montsalvat

Beitrag von Lohengrin » 09.10.2007 11:16:03

Pa D. hat geschrieben:
Das ist Globbing und nicht Regex. Daher trifft *[A-Z]* alles was A oder - oder Z drin hat - außer es fängt mit . an.
Also dann dürfte mein Versuch eigentlich gar nicht gehen, aber warum funktioniert das?
Könntest du mir das erklären ? Ich will ja nicht doof sterben.
Da sind Namen dabei ohne A oder Z oder - .
Du hast recht. Ich habe mich vertan. *[A-Z]* ist tatsächlich ein Bereich, der A bis Z, aber auch b bis z einschließt. ä gehört auch dazu. Aber seltsamerweise gehört a nicht dazu.
Ich verstehe nicht was da abgeht. man glob hilft mir auch nicht.

Geier0815
Beiträge: 361
Registriert: 07.04.2005 16:51:01

Beitrag von Geier0815 » 09.10.2007 11:51:14

mmv wurde schon vor Jahren im Linux-User vorgestellt, incl der Erläuterung warum das Umbenennen von Dateien Probleme verursachen kann: http://www.linux-user.de/ausgabe/2001/0 ... ml?print=y
Wenn Windows die Lösung ist...
kann ich dann bitte das Problem zurück haben?

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Beitrag von ThorstenS » 09.10.2007 12:35:38

richtig auf diesen Artikel hin habe ich schon versucht den Bekanntheisgrad zu erhöhen 8)
https://www.redhat.com/archives/redhat- ... 01598.html

Antworten