Hallo,
ich bin auf der Suche nach einem kleinen Progrämmelchen, mit
dem ich in Dateinamen enthaltene Leerzeichen in ein
underscore, also ein _ verwandeln kann und das ganze dann auch
noch rekursiv. Ich habe ein paar Dateien (96 MB) von Windows
nach Linux kopiert und will die nun auf CDR brennen. Vorher
möchte ich allerdings die Leerzeichen „killen“, so dass aus…
Das ist der Name der Beispieldatei.xyz
foglendes wird:
Das_ist_der_Name_der_Beispieldatei.xyz
Gibt es sowas und wenn ja, wie heisst’s und wo finde ich’s?
Hi!
Hier eine Loesung aus dem Bauch.
Sollte unter linux funktionieren!
-
In das Verzeichnis mit den ‚leerzeichen-behafteten‘ Dateien gehen.
-
Die folgende Zeile am Prompt eingeben:
for i in *;do cmd=„cp $(echo $i| sed ‚s/ /\\ /g‘) $(echo $i | tr ’ ’ ‚_‘)“;eval $cmd; done
Danach hast du in dem Verzeichnis (theoretisch) sowohl die Original-Dateien als auch die mit „_“ versehenen.
Ich garantiere fuer nix, aber wenn du mutig bist, kannst du den teil
cmd="cp
in
cmd="mv
umwandeln. Dann wird die ‚leerzeichen-datei‘ gleich geloescht. 
Wenn du pruefen willst, ob es funktioniert, ersetze einfach
eval $cmd
mit
echo $cmd
Nehmen wir an, du hast eine Datei ‚a b c d e‘, dann solltest du diese Zeile sehen:
cp a\ b\ c\ d\ e a_b_c_d_e
(oder natuerlich ‚mv‘ statt ‚cp‘
)
Wie gesagt… alles nur aus dem Kopp…
Geht nebenbei nur in einem Verzeichnis. Wenn du multiple Verzeichnisse behandeln willst, wirds ein wenig komplizierter, aber du kannst mir mailen.
Wenn du ein bisschen geduldig bist, bekommst du auch Antwort.
Viel Spass,
MG.