On Fre, Feb 09, 2001 at 10:20:41 +0100, David Haller wrote:
On Fre, 09 Feb 2001, Tobias Wilken wrote:
Weiss jemand wie ich mehrere Dateien und Verzeichnisse, so umbenennen kann, das alles klein geschrieben ist? Wie ich Dateien einzelnd umbenennen kann weiss ich, aber ich muesste ca. 1000 Dateien und dementsprechend auch Unterverzeichnisse umbenennen!!
Alles eine Zeile, daher auch die ";":
Wieso? Das geht auch am Prompt mit Enter und ohne die ";"
ren() { for f in "$@"; do echo mv -i "$f" "$(echo $f | tr '[A-Z ]' '[a-z_]')";
Was macht das echo? Von Tests übriggeblieben? ;-) Die Option -i bei 1000 Dateien? Das braucht Nerven. Und mein Lieblings-Gemecker hier: Ich würde hier prinzipiell eine Zeile zusätzlich einbauen: dn="`echo $f | tr '[A-Z]' '[a-z]'`" test "$f" = "$dn" || mv "$f" "$dn" sonst gibt es bei Dateien, die keine Großbuchstaben enthalten, immer einen Fehler!
done; }; find /startverzeichnis/ -type f -print0 | xargs -0 ren ^^^^^^^ Unterverzeichnisse sollten auch mit umbenannt werden, also ist das überflüssig. Ich würde eher die Option -depth benutzen, damit der Inhalt der Verzeichnisse vor dem Verzeichnis selbst bearbeitet wird.
Dabei werden auch gleich Leerzeichen durch _ ersetzt.
Warum immer diese Ersetzung? Leerzeichen sollten nun wirklich niemanden mehr stören. Der Zeilenumbruch in Dateien nervt mich persönlich viel mehr. Jan BTW: Wie oft in den letzten Wochen hatten wir das Thema? Wäre vielleicht mal wieder ein Verweis auf das Archiv der Liste angebracht?