Leerzeichen in '_' konvertieren

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?

CIAO

Carsten

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. :smile: Sollte unter linux funktionieren!

  1. In das Verzeichnis mit den ‚leerzeichen-behafteten‘ Dateien gehen.

  2. 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. :smile:

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‘ :smile: )

Wie gesagt… alles nur aus dem Kopp…:smile:

Geht nebenbei nur in einem Verzeichnis. Wenn du multiple Verzeichnisse behandeln willst, wirds ein wenig komplizierter, aber du kannst mir mailen. :smile: Wenn du ein bisschen geduldig bist, bekommst du auch Antwort.

Viel Spass,

MG.

[…]
2. Die folgende Zeile am Prompt eingeben:

for i in *;do cmd=„cp $(echo $i| sed ‚s/ /\\ /g‘) $(echo $i |
tr ’ ’ ‚_‘)“;eval $cmd; done
[…]

Hi MG,

dein „Kopf“ ist recht fit, es hat auf Anhieb geklappt!
Schönen Dank für die prompte Hilfe.

CIAO

Carsten