Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
| — |
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! | ||