Leerzeichen in '_' konvertieren

Von: , Frage gestellt am Mo, 9. Apr 2001

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

2 Antworten zu dieser Frage

  1. Antwort von nach einem Tag 0 hilfreich
    Re: 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?

    Hi!

    Hier eine Loesung aus dem Bauch. :) 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. :)

    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.

    • Antwort von nach einem Tag 0 hilfreich
      Re^2: Leerzeichen in '_' konvertieren

      [...]
      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

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!