
Wie kann ich das Suffix für mehrere Dateien gleichzeitig ersetzen?
Ich habe viele Dateien wie
NameSomthing-min.png
NameSomthing1-min.png
NameSomthing2-min.png
Ich möchte sie alle ändern in
NameSomthing.png
NameSomthing1.png
NameSomthing2.png
d. h., die Zeichen -min
aus dem Namen entfernen. Wie würde ich das machen?
Antwort1
Dieses Skript kann hilfreich sein:
for file in *-min.png; do
echo mv "$file" "${file%-min.png}.png"
done
Entfernen Sie das Echo, um den Befehl tatsächlich auszuführen.
Antwort2
Das hängt von Ihrer Shell ab. Ich verwende zsh
und mache es folgendermaßen:
for i in *-min.*; do mv $i "${i%-*}.${i#*.}"; done
Ich empfehle, die Manpage Ihrer Shell zu überprüfen und einen Abschnitt ähnlich der „Parametererweiterung“ (wie es in derzsh
manpage).
Ähnliche Lösungen sind bash
auch für und andere Shells verfügbar (Sie haben nicht angegeben, welche Sie verwenden).
Bitte beachten Sie, dass Ihre konkrete Lösung immer von den Daten und Ihrem Ziel abhängt. Wenn Sie beispielsweise das '-' als Trennzeichen zwischen dem Namen und dem Suffix haben, das Sie entfernen möchten, ist dies der richtige Weg. Andernfalls möchten Sie die Parametererweiterung möglicherweise etwas anpassen.