for i in *;
do new=`echo "$i" | sed -e 's/^./\U&/'`;
mv "$i" "$new";
done;
Wäre der gesamte Code aufgeschlüsselt, um ihn leicht sichtbar zu machen, werde ich unten erklären.
Zuerst müssen wir sicherstellen, dass wir jede Datei verarbeiten. Die folgende Zeile bedeutet: "Gehen Sie wie folgt vor, solange Sie Dateien finden können."
for i in *;
Dann müssen wir den aktuellen Dateinamen laden (der in der Variablen $ i gespeichert ist), den ersten Buchstaben durch eine großgeschriebene Version ersetzen und den neuen Namen (in der Variablen $ new) speichern.
Der folgende Befehl bedeutet im Wesentlichen: Variable $ new ( do new=
) erstellen Laden Sie $ i und leiten Sie es ( "$i" |
) an eine Funktion weiter, die den ersten Buchstaben durch einen großgeschriebenen ersetzt. ( sed -e 's/^./\U&/'
; `)
Die sed Handbuchseite finden Sie hier . Es wird verwendet, um grundlegende Texttransformationen durchzuführen. Grundsätzlich wird ein regulärer Ausdruck (der 's/^./\U&/'
Teil) (eine Methode zum Erkennen eines bestimmten Musters in einem Text) verwendet, um nicht kapitalisierte Erstzeichen zu erkennen und durch eine großgeschriebene Version zu ersetzen.
do new=echo "$i" | sed -e 's/^./\U&/';
Nachdem wir den neuen Namen erhalten haben, ist es Zeit, die Datei mit dem neuen großgeschriebenen Namen umzubenennen. Der folgende Befehl führt dies aus.
Es heißt: Verschiebe (wie beim Umbenennen) die alte Datei foo.bar in die neue Foo.bar.
mv "$i" "$new";
Wir haben jetzt eine Datei umbenannt und es ist Zeit, zur nächsten zu wechseln. Das Folgende schließt die for-Funktion ab und teilt ihr mit, dass es jetzt Zeit ist, fortzufahren und die nächste Datei zu verarbeiten.
done;
sed
Großbuchstaben des Ersatzes eine GNU-sed
Erweiterung ist und auf UNIX-Systemen, auf denen ein anderessed
verwendet wird, wahrscheinlich nicht funktioniert .