Ich habe eine Reihe von Dateien in einem Ordner und möchte jedes Leerzeichen in allen Dateinamen durch Unterstriche ersetzen. Wie kann ich das erreichen?
96
Dies sollte es tun:
for file in *; do mv "$file" `echo $file | tr ' ' '_'` ; done
1 - foo.jpg
und mein Ordner hatte1.jpg
schon drin.for file in *; do mv "$file" $(echo $file | tr ' ' '_') ; done
*
zuPATH_TO_YOUR_DIRECTORY
.Ich bevorzuge die Verwendung des Befehls 'Umbenennen', der reguläre Ausdrücke im Perl-Stil verwendet:
Sie können einen Trockenlauf mit dem Flag -n durchführen:
quelle
rename " " "_" *
rename
In OSX nicht verfügbar.rename
ist verfügbar.Verwenden Sie sh ...
Wenn Sie dies ausprobieren möchten, bevor Sie den Abzug betätigen, wechseln Sie einfach
mv
zuecho mv
.quelle
Wenn Sie bash verwenden:
quelle
mv --help' for more information. mv: when moving multiple files, last argument must be a directory Try
mv --help 'für weitere Informationen.mv --help' for more information. mv: missing file argument Try
Dateiargument Versuchen Sie mv --help 'für weitere Informationen. mv: fehlendesmv --help' for more information. mv: missing file argument Try
Dateiargument Weitere Informationen finden Sie unter mv --help '.Was ist, wenn Sie die Ersetzungsaufgabe rekursiv anwenden möchten ? Wie würdest du das machen?
Nun, ich habe die Antwort gerade selbst gefunden. Nicht die eleganteste Lösung (versucht auch, Dateien umzubenennen, die nicht der Bedingung entsprechen), aber es funktioniert. (Übrigens musste ich in meinem Fall die Dateien mit '% 20' umbenennen, nicht mit einem Unterstrich)
quelle
Versuchen Sie etwas Ähnliches, vorausgesetzt, alle Ihre Dateien waren .txt-Dateien:
quelle
tr --help' for more information. mv: missing file argument Try
mv --help 'für weitere Informationen.Hier ist eine andere Lösung:
quelle
Zitieren Sie Ihre Variablen:
Entfernen Sie das "Echo", um die eigentliche Umbenennung vorzunehmen.
quelle
\'1130 lake micigan view.jpg\'': No such file or directory mv: cannot stat
\ '1130_1_bedroom_floor_plan.jpg \' ': Keine solche Datei oder kein solches Verzeichnis mv: kann nicht stat\'1130_BedPicture_8.jpg\'': No such file or directory mv: cannot stat
\' 1130_diningroom_table.jpg \ '': Keine solche Datei oder kein solches VerzeichnisDer einfachste Weg, eine Zeichenfolge (in Ihrem Fall ein Leerzeichen) durch eine andere Zeichenfolge zu ersetzen,
Linux
ist die Verwendung vonsed
. Sie können dies wie folgt tunHoffe das hilft.
quelle
Ich glaube, Ihre Antwort lautet " Leerzeichen in Dateinamen durch Unterstriche ersetzen" .
quelle
Um alle Dateien mit einer
.py
Erweiterung umzubenennen, verwenden Sie:find . -iname "*.py" -type f | xargs -I% rename "s/ /_/g" "%"
Beispielausgabe,
quelle