• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] Dateinamen ändern

@all

Da mich meine Script_Unwissenheit seit fast 2 Tagen in den Wahnsinn treibt bräuchte ich einen Denkanstoss.

Will eine ziemliche Menge an Dateien umbennen. Mit "krename " ist es eine kleine Lebensaufgabe, darum müsste die Sache auf Konsole oder mit einem Script gelöst werden.

Die Dateinamen schauen z.B. so aus:

" Queen_-_A_Kind_Of_Magic_-_01_-_One_Vision.mp3 "

" 108-Lynyrd_Skynyrd-Free_Bird-HHI.mp3 "

Mein Ziel ist es, die Dateinamen von Grossschreibung auf Kleinschreibung zu ändern. Ferner, wenn es geht ( bestimmt irgend wie ), die Nummerierung der Files zu entfernen bzw zu sotieren.
Sollte auch rekursiv angewendet werden können. da es eine Unmenge an Ordnern sind.

Mit " find . -name '*.JPG' -exec rename .JPG .jpg {} \; " kann man ja die " DATEIENDUNG " ändern.

Wie stelle ich es an, dass mir rename die " DATEINAMEN " in klein ändert. Mit " mmv " auch schon rumgemacht, aber ohne Erfolg

Hoffe es findet sich jemand, der mich in die richtige Richtung stösst

gruss....
 
@spoensche

Danke, aber bei fast 3000 Files eine ziemliche Aufgabe.

@jengelh

Habe es probiert mit:

mmv 'A,B,C, usw.' '#l1" , mit
mmv 'A-Z' '#l1"

Buchstaben auch in Klammern gesetzt, aber funktioniert nicht, bzw. der Prompt verlangt noch eine Eingabe. Da auch Buchstaben oder Pfadangabe probiert.

War auf jedenfall im Verzeichnis und an den Berechtigungen liegt es auch nicht. :cry:

gruss....
 
Probier doch mal rename.
Konvertierung GROß<->klein:
Code:
rename ’y/A-Z/a-z/’ *
Besser geht das noch mit dem graphischen Frontend krename.
(Muss evtl. nachinstalliert werden)
 
Krename habe ich und habe da etliches schon damit geändert. Nur, wie gesagt, ist es damit eine kleine Lebensaufgabe, weil man jeden Ordner einzeln importieren muss. Dass man alle mit krename auf einmal umwandelt bzw. in Schritten, haut leider nicht hin.


rename ’y/A-Z/a-z/’ * = will damit auch nicht umwandeln.

An den " _ " liegt es bestimmt nicht, aber vieleicht an der teilweissen Nummerierung der Files.

Kommt noch dazu, dass ich die Wände hochgehen könnte, wenn ich was auf Konsole nicht auf die Reihe bringe.
 
milli4503 schrieb:
Krename habe ich und habe da etliches schon damit geändert. Nur, wie gesagt, ist es damit eine kleine Lebensaufgabe, weil man jeden Ordner einzeln importieren muss.
Halte ich für ein Gerücht. :wink:
Konqueror -> Rechtsklick auf Ordner -> Aktionen -> mit Krename umbenennen: Alle Dateien inkl. Unterordner werden eingelesen.

Den Rest musst du dann mit Regulären Ausdrücken machen ...

milli4503 schrieb:
Dass man alle mit krename auf einmal umwandelt bzw. in Schritten, haut leider nicht hin.
Sry. :oops:
Falsche Quotierung. Richtig:
rename 'y/A-Z/a-z/' *
(Also mit Singelquotes - Neudeutsch: Hochkommata).
 
Hallo,

ich würd' es mit einem kleinen Skript probieren:
Code:
#/bin/sh
old=$1
new=$(echo $1 | awk '{ sub("[0-9]+-",""); print tolower($1); }')
#echo $old nach $new
mv $old $new
Das sollte das erste Vorkommen von "<Zahl>-" entfernen und nebenbei den Dateinamen in Kleinbuchstaben wandeln.

Das Skript brauchst du dann nur noch mit einem find zu füttern, also z.B.:
Code:
find . -name "[0-9][0-9][0-9]-*" -exec ./myrename.sh '{}' \;
 
rename 'y/A-Z/a-z/' * = nee, nichts geht.

Werde jetzt mal schauen, dass ich krename ins Aktionsmenü von Konqueror kriege, nur dass mit rename auf Konsole fuchst mich schon.
 
Script gefüttert und ausgeführt. Folgende Ausgabe: mv: missing file operand

Oh Mann.Jetzt muss ich erstmal eine rauchen. Trotzdem bedanke ich mich hier mal für die Hilfe.
 
Hm, funktioniert:
Code:
(11:48:07) chimaera: b3ll3roph0n [~/Test] $ ll
insgesamt 4,0K
drwxr-xr-x  2 b3ll3roph0n users   74 2006-08-15 11:47 .
drwx------ 35 b3ll3roph0n users 4,0K 2006-08-15 11:40 ..
-rw-r--r--  1 b3ll3roph0n users    0 2006-08-15 11:47 AbCDDD.Ext
-rw-r--r--  1 b3ll3roph0n users    0 2006-08-15 11:47 abfdEF.ext
-rw-r--r--  1 b3ll3roph0n users    0 2006-08-15 11:47 TDVTS.ext
-rw-r--r--  1 b3ll3roph0n users    0 2006-08-15 11:47 xcdeihf.EXT
(11:48:11) chimaera: b3ll3roph0n [~/Test] $ rename 'y/A-Z/a-z/' *
(11:48:17) chimaera: b3ll3roph0n [~/Test] $ ll
insgesamt 4,0K
drwxr-xr-x  2 b3ll3roph0n users   74 2006-08-15 11:48 .
drwx------ 35 b3ll3roph0n users 4,0K 2006-08-15 11:40 ..
-rw-r--r--  1 b3ll3roph0n users    0 2006-08-15 11:47 abcddd.ext
-rw-r--r--  1 b3ll3roph0n users    0 2006-08-15 11:47 abfdef.ext
-rw-r--r--  1 b3ll3roph0n users    0 2006-08-15 11:47 tdvts.ext
-rw-r--r--  1 b3ll3roph0n users    0 2006-08-15 11:47 xcdeihf.ext
 
Ich verstehe es auch nicht, warum es nicht funktioniert. Dass ein Grossteil der Files Nummeriert sind wie " 108-Lynyrd_Skynyrd-Free_Bird-HHI.mp3 " andem kann es doch auch nicht liegen.
 
milli4503 schrieb:
mmv 'A,B,C, usw.' '#l1" , mit
mmv 'A-Z' '#l1"
Neinnein :-D, mmv nimmt ganze Dateinamen/Wildcard, also z.B.
Code:
$ ls
ChangeLog COPYING NEWS Readme Zed.cpp nIXda.cpp blubB.cpp
$ mmv '*.cpp' '#l1.cpp'
$ ls
ChangeLog COPYING NEWS Readme zed.cpp nixda.cpp blubb.cpp
Man kann auch Wortteile vertauschen,
Code:
$ mmv '*.cpp' 'cpp.#1'
=> cpp.zed cpp.nixda cpp.blubb
einfach besser.
 
@jengelh

Super, danke. War eine schwere Geburt, aber es hat jetzt funktioniert.

Jetzt wäre noch toll, wenn ich die Bedeutung von '#l1.xxx' wüsste.

gruss....
 
#1 => stell dir $1 vor, das kennst du von der Shell
ein kleines L steht für lower, ein kleines U für upper (also kleinmachen und großmachen), also #u2 z.B. würde an der Stellt die 2. Wildcard in Grossbuchstaben einfügen, #l1 die 1. Wildcard als Kleinbuchstaben. Man kann sogar:
Code:
mmv '*.cpp' '#1.#1.cpp'
machen um einen Namensteil zu doppeln. Sachen gibts :shock:
Schon mal `man mmv` gemacht?
 
Danke fürs Erklären.
man mvv kenn ich schon, scheitere aber ab und zu an meinem hundsmiserablen Englisch. Arbeite zwar dran, aber in meinem Alter................
 
Oben