Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
virtual:blog:bash_gross-_kleinschreibung_von_dateinamen_aendern [2017/10/23 15:45] |
virtual:blog:bash_gross-_kleinschreibung_von_dateinamen_aendern [2017/10/23 15:45] (aktuell) |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== bash: Groß-/Kleinschreibung von Dateinamen ändern ====== | ||
+ | Beim Umzug der [[:bi-files|BI-Liste]] stieß ich auf ein Problem: der Mediamanager meines cms erkennt nur Dateinamen in Kleinschreibung. In den Dateinamen der Liste treten Groß- und Kleinbuchstraben jedoch bunt gemixt auf. Also was tun? Mehr als 100 Dateinamen im Windows-Explorer umbenennen? Nö. Die [[wpde>bash|Bash]] kann das viel effizienter: Ein kurzes Stöbern bei [[http://www.dejanews.com|dejanews]] brachte die (für mich) verblüffend einfache Lösung. | ||
+ | |||
+ | ====== Die Lösung ====== | ||
+ | for f in *; do mv $f "$(echo "$f" | tr A-Z a-z)"; done | ||
+ | |||
+ | |||
+ | ====== Ein paar Details ====== | ||
+ | |||
+ | * Zwischen //for// und //done// wird eine so genannte for-[[wpde>Schleife (Programmierung)|Schleife]] definiert | ||
+ | * Die Schleife läuft für jede gefundene Datei (//*//) einmal durch und speichert deren Namen jeweils in der Variablen $f. | ||
+ | * Jede Datei wird mittels //mv// umbenannt und zwar von //$f// nach //"$(echo "$f" | tr A-Z a-z)"//. | ||
+ | * Letzterer Ausdruck sendet den Dateinamen (//echo $f//) per [[wpde>Pipe (Informatik)|Pipe]] an den Befehl [[http://www.gnu.org/software/textutils/manual/textutils/html_node/textutils_38.html#SEC38|tr]], welcher alle Großbuchstaben (//A-Z//) in Kleinbuchstaben (//a-z//) umwandelt. | ||
+ | * Fertig! | ||