per script Großschreibung in Kleinschreibung ändern
Hallo, hat jemand ein Script zu Hand mit dem ich in einer komletten Ordenstruktur Dateien komplett auf Kleinschreibung konvertieren kann? Testdatei.dat soll dann testdatei.dat werden TestDatei.DAt soll dann testdatei.dat werden will sagen es stehen nicht nur am Anfang des Namens Großbuchstaben. Danke und Gruß -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Samstag, 19. Dezember 2009 09:59:12 schrieb Ralf Prengel:
Hallo,
hat jemand ein Script zu Hand mit dem ich in einer komletten Ordenstruktur Dateien komplett auf Kleinschreibung konvertieren kann?
Testdatei.dat soll dann testdatei.dat werden TestDatei.DAt soll dann testdatei.dat werden
will sagen es stehen nicht nur am Anfang des Namens Großbuchstaben.
Danke und Gruß
http://www.linuxjournal.com/content/convert-filenames-lowercase Hab ich nicht selbst getestet, sieht aber gut aus und ist ausführlich erklärt. Jürgen -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo Jürgen, hallo Ralf, Am Samstag, 19. Dezember 2009 schrieb Juergen Langowski:
Am Samstag, 19. Dezember 2009 09:59:12 schrieb Ralf Prengel:
Hallo,
Danke und Gruß
http://www.linuxjournal.com/content/convert-filenames-lowercase soweit ich das Script verstehe "... in the current directory ..." macht es im Grunde nichts anderes als: mmv "*" "#l1"
In der gesamten Ordnerstruktur (rekursiv) funktioniert auch mmv nicht. Gruß Achim -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am 19.12.2009 11:22, schrieb Rüdiger Thies:
Hallo Jürgen, hallo Ralf,
Am Samstag, 19. Dezember 2009 schrieb Juergen Langowski:
Am Samstag, 19. Dezember 2009 09:59:12 schrieb Ralf Prengel:
Hallo,
Danke und Gruß
http://www.linuxjournal.com/content/convert-filenames-lowercase soweit ich das Script verstehe "... in the current directory ..." macht es im Grunde nichts anderes als: mmv "*" "#l1"
In der gesamten Ordnerstruktur (rekursiv) funktioniert auch mmv nicht.
Hallo, installiere dir einfach das Package "convmv" und führe es im aktuellen Verzeichnis aus: # find ./ -type f -print0 | xargs -0 convmv --lower Der obige Befehl konvertiert noch keine Dateien, sondern liefert eine Liste aus. Wenn die Liste in Ordnung ist, dann haue noch ein --notest rein, wie z.B.: # find ./ -type f -print0 | xargs -0 convmv --lower --notest Noch irgendwelche Fragen? :-) -- Gruß Sebastian - openSUSE Member (Freespacer) http://de.opensuse.org/Benutzer:Freespacer Wichtiger Hinweis zur openSUSE Mailing Liste: http://de.opensuse.org/OpenSUSE_mailing_list_netiquette -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am 19.12.2009 11:47, schrieb Sebastian Siebert:
Hallo,
installiere dir einfach das Package "convmv" und führe es im aktuellen Verzeichnis aus: # find ./ -type f -print0 | xargs -0 convmv --lower
Der obige Befehl konvertiert noch keine Dateien, sondern liefert eine Liste aus. Wenn die Liste in Ordnung ist, dann haue noch ein --notest rein, wie z.B.: # find ./ -type f -print0 | xargs -0 convmv --lower --notest
Noch irgendwelche Fragen? :-)
Das war einfach. Danke. Zur Frage nach Fragen: hast du noch einen Tip wie man auch Verzeichnisse auf Kleinschreibung umsetzten kann? Gruß -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hi Ralf Am Samstag, 19. Dezember 2009 18:23:32 schrieb Ralf Prengel:
Am 19.12.2009 11:47, schrieb Sebastian Siebert:
# find ./ -type f -print0 | xargs -0 convmv --lower --notest
hast du noch einen Tip wie man auch Verzeichnisse auf Kleinschreibung umsetzten kann?
-type d [ ] Du schaust die manpage von aus Maillisten abgetippten Befehlen schon an. Gruss Jürg -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am 19.12.2009 18:53, schrieb Juerg Schneider:
Hi Ralf
Am Samstag, 19. Dezember 2009 18:23:32 schrieb Ralf Prengel:
Am 19.12.2009 11:47, schrieb Sebastian Siebert:
# find ./ -type f -print0 | xargs -0 convmv --lower --notest
hast du noch einen Tip wie man auch Verzeichnisse auf Kleinschreibung umsetzten kann?
-type d
[ ] Du schaust die manpage von aus Maillisten abgetippten Befehlen schon an.
Yeap, da habe ich den Wald vor lauter Bäumen nicht gesehen. Gruß und Dank -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am 19.12.2009 19:59, schrieb Ralf Prengel:
Am 19.12.2009 18:53, schrieb Juerg Schneider:
Hi Ralf
Am Samstag, 19. Dezember 2009 18:23:32 schrieb Ralf Prengel:
Am 19.12.2009 11:47, schrieb Sebastian Siebert:
# find ./ -type f -print0 | xargs -0 convmv --lower --notest
hast du noch einen Tip wie man auch Verzeichnisse auf Kleinschreibung umsetzten kann?
-type d
[ ] Du schaust die manpage von aus Maillisten abgetippten Befehlen schon an.
Yeap,
da habe ich den Wald vor lauter Bäumen nicht gesehen.
Wenn du wirklich alle Datei- und Verzeichnisnamen in Kleinschreibung haben willst, dann nutze direkt das Tool. # convmv -r --lower --notest * Bei Konversionen nur mit Verzeichnisnamen: Mit "find -type d" geht es auch, jedoch musst du es mehrmals je nach Verzeichnistiefe ausführen, da die Liste von convmv nach der Umbenennung des Verzeichnisnamen alle dahinterliegenden Verzeichnisse nicht mehr erreichen kann. Mit diesem Einzeiler sollte es dennoch gehen, falls dir die Tiefe bekannt ist, dann kannst du anstatt 10 irgendeine andere Zahl einsetzen. Die tiefste Ebene kommt zuerst dran und das Tool convmv arbeitet sich vom letzten zum ersten Verzeichnis vor. Jedoch gibt es ein kleines Manko bei diesem Einzeiler, es darf beim Verzeichnisnamen keine Leerzeichen geben. Ich würde sonst gerne bei find und xargs mit NUL-Character arbeiten und nicht mit einem Space-Delimiter. # echo -n `for i in {10..1}; do find ./ -mindepth $i -maxdepth $i -type d -print; done;` | xargs convmv --lower --notest Wer 'ne Idee hat, wie es doch mit NUL-Character in diesem Einzeiler funktionieren kann, dann nur her damit. ;-) -- Gruß Sebastian - openSUSE Member (Freespacer) http://de.opensuse.org/Benutzer:Freespacer Wichtiger Hinweis zur openSUSE Mailing Liste: http://de.opensuse.org/OpenSUSE_mailing_list_netiquette -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Son, 20 Dez 2009, Sebastian Siebert schrieb:
Bei Konversionen nur mit Verzeichnisnamen: Mit "find -type d" geht es auch, jedoch musst du es mehrmals je nach Verzeichnistiefe ausführen, da die Liste von convmv nach der Umbenennung des Verzeichnisnamen alle dahinterliegenden Verzeichnisse nicht mehr erreichen kann.
Du solltest manpages genauer lesen. find . -depth ... ==== man 1 find (und das schon "immer") ==== -depth Process each directory's contents before the direc tory itself. ====
# echo -n `for i in {10..1}; do find ./ -mindepth $i -maxdepth $i -type d -print; done;` | xargs convmv --lower --notest
Für was zum Henker soll das 'echo ``' hier dienen??? Wie kommt man überhaupt auf die Idee, das hier so verwenden zu wollen?? Kannst du mir das bitte mal erklären? Mit solchen "kranken" Konstruktionen fängst du dir nur zusätzliche Probleme ein.
Wer 'ne Idee hat, wie es doch mit NUL-Character in diesem Einzeiler funktionieren kann, dann nur her damit. ;-)
find ... -print0 | xargs -r -0 convmv ... Oder inkl. der (hier überflüssigen) Schleife: for i in $(seq 10 1) ; do find ... -print0 done | xargs -r -0 convmv ... oder auch for i in $(seq 10 1) ; do find ... -print0 | xargs -r -0 convmv ... done *kopfschüttel* -dnh -- Es ist heutzutage nicht einfach, eine komplette Desktop-Umgebung zu finden, die so schlank wie Emacs ist. -- Florian Diesch -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo David, Am 20.12.2009 09:18, schrieb David Haller:
Bei Konversionen nur mit Verzeichnisnamen: Mit "find -type d" geht es auch, jedoch musst du es mehrmals je nach Verzeichnistiefe ausführen, da die Liste von convmv nach der Umbenennung des Verzeichnisnamen alle dahinterliegenden Verzeichnisse nicht mehr erreichen kann.
Du solltest manpages genauer lesen.
find . -depth ...
==== man 1 find (und das schon "immer") ==== -depth Process each directory's contents before the direc tory itself. ====
Argh, und ich hatte es noch gelesen. *patsch* Aber nicht richtig deuten können. Danke, dass du hier mir die Augen geöffnet hast. ;-)
# echo -n `for i in {10..1}; do find ./ -mindepth $i -maxdepth $i -type d -print; done;` | xargs convmv --lower --notest
Für was zum Henker soll das 'echo ``' hier dienen??? Wie kommt man überhaupt auf die Idee, das hier so verwenden zu wollen?? Kannst du mir das bitte mal erklären? Mit solchen "kranken" Konstruktionen fängst du dir nur zusätzliche Probleme ein.
Ja, das ist ein Ergebnis, womit ich echt nicht zufrieden war, aber mir gefällt die Lösung mit -depth viel viel und um weiten besser.
Wer 'ne Idee hat, wie es doch mit NUL-Character in diesem Einzeiler funktionieren kann, dann nur her damit. ;-)
find ... -print0 | xargs -r -0 convmv ...
Oder inkl. der (hier überflüssigen) Schleife:
for i in $(seq 10 1) ; do find ... -print0 done | xargs -r -0 convmv ...
oder auch
for i in $(seq 10 1) ; do find ... -print0 | xargs -r -0 convmv ... done
*kopfschüttel*
Das hatte sich ja jetzt eigentlich erübrigt. Danke nochmals und wieder was dazu gelernt. :-) -- Gruß Sebastian - openSUSE Member (Freespacer) http://de.opensuse.org/Benutzer:Freespacer Wichtiger Hinweis zur openSUSE Mailing Liste: http://de.opensuse.org/OpenSUSE_mailing_list_netiquette -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hi Ralf! On Sa, 19 Dez 2009, Ralf Prengel wrote:
Hallo,
hat jemand ein Script zu Hand mit dem ich in einer komletten Ordenstruktur Dateien komplett auf Kleinschreibung konvertieren kann?
Testdatei.dat soll dann testdatei.dat werden TestDatei.DAt soll dann testdatei.dat werden
will sagen es stehen nicht nur am Anfang des Namens Großbuchstaben.
ungetestet: find . -type f -depth -exec bash -c 'mv "$1" "$(echo "$1" | sed "s/./\L&/g")" ' find-sh '{}' \; (eine Zeile) Mit freundlichen Grüßen Christian -- Lieber ein buddhistisches Standesamt, als ein statistisches Bundesamt. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (7)
-
Christian Brabandt
-
David Haller
-
Juerg Schneider
-
Juergen Langowski
-
Ralf Prengel
-
Rüdiger Thies
-
Sebastian Siebert