staging.inyokaproject.org

rename-Verhalten: Ersetzen der Leerzeichen durch Unterstrich scheitert

Status: Gelöst | Ubuntu-Version: Ubuntu 20.04 (Focal Fossa)
Antworten |

HarryS79

Anmeldungsdatum:
6. September 2019

Beiträge: 52

Hallo Community:

ich habe auf einem frisch aufgesetzten Ubuntu-Rechner eine ganze Menge Dateien aus einem Windows-System eingespielt. Nun gilt es, die Leerzeichen und ein paar andere aus den Dateinamen zu ersetzen um Linuxkonforme Dateinamen zu bekommen. Beim Trockenlauf von "rename":

rename -v -n 's/ /_/' *.*

ist der Output solcher Art:

rename(neue leere Windows Datei.txt, neue_leere Windows Datei.txt)

wie man sieht wird jeweils nur ein Leerzeichen durch einen Unterstrich ersetzt. Kennt jemand den korrekten Ausdruck für rename um ALLE Leerzeichen im Dateinamen umzuwandeln?

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 10978

Nachdem renme bei Ubuntu standardmäßig ein Perl-Skript ist, kann man den /g Modifier nutzen, um alle Matches in einem String abzuklappern (vgl. https://perldoc.perl.org/perlrequick#More-matching):

$ rename -v -n 's/ /_/g' neue\ leere\ Windows\ Datei.txt 
rename(neue leere Windows Datei.txt, neue_leere_Windows_Datei.txt) 

merlin1987

Anmeldungsdatum:
27. Juli 2009

Beiträge: 360

HarryS79 schrieb:

Kennt jemand den korrekten Ausdruck für rename um ALLE Leerzeichen im Dateinamen umzuwandeln?

rename -v -n 's/ /_/g' *.*

oder

rename -v -n 'tr/ /_/' *.*

HarryS79

(Themenstarter)

Anmeldungsdatum:
6. September 2019

Beiträge: 52

Wow, das ging schnell. Vielen Dank!

Grüße Harry

Antworten |