Anzeige:
Ergebnis 1 bis 6 von 6

Thema: white space im Dateinamen

  1. #1
    Registrierter Benutzer Avatar von Hans-Georg Normann
    Registriert seit
    04.03.2000
    Ort
    Uetersen
    Beiträge
    571

    Question white space im Dateinamen

    Wie behandelt man white space im Dateinamen in einer shell?

    Beispiel :
    • $VARIABLE=`echo "meine erste.mp3\
      meine zweite.mp3"`

      for DUMMY in $VARIABLE; do
      echo $DUMMY
      done


    Dieses liefert:
    • meine
      erste.mp3
      meine
      zweite.mp3


    und nicht
    • meine erste.mp3
      meine zweite.mp3


    Hans

    [ 25. April 2001: Beitrag editiert von: Hans-Georg Normann ]
    333 Mhz, 466 MHz, neee, ich hab was neues zuhause.....

  2. #2
    Registrierter Benutzer
    Registriert seit
    25.12.1999
    Ort
    Stuttgart
    Beiträge
    259

    Post

    Hallole,

    mir fällt auf anhieb nix ein, aber ne andere
    Möglichkeit hätt ich dir, vielleicht reichts ja:

    ---------------------------------------
    FILES="mein erstes.mp3 mein zweites.mp3"

    for i in $FILES; do
    if [ -z `echo $i | grep "mp3"` ]; then
    echo -n "$i "
    else
    echo $i
    fi
    done

    ---------------------------------------

    Funktionieren tuts, obs das ist was du willst is ne andere frage

    Gruß micha
    IRC: irc.euirc.net #tux

  3. #3
    Registrierter Benutzer
    Registriert seit
    21.01.2001
    Beiträge
    157

    Post

    Man setzt einen Backslash for das Leerzeichen.

  4. #4
    Registrierter Benutzer
    Registriert seit
    25.12.1999
    Ort
    Stuttgart
    Beiträge
    259

    Post

    @jgbaumann
    war des erste, was ich versucht hab:
    funktioniert in ner for-schleife net...

    Gruß micha
    IRC: irc.euirc.net #tux

  5. #5
    Registrierter Benutzer
    Registriert seit
    21.01.2001
    Beiträge
    157

    Post

    also:
    for I in a\ b c\ d ; do echo "$I"; done
    liefert:
    a b
    c d

    Allerdings macht das echo in:
    VARIABLE=`echo "meine\ ertse.mp3\ meine\ zweite.mp3"`
    alles wieder kaputt.
    Probier mal
    VARIABLE="meine\ ertse.mp3 meine\ zweite.mp3"
    oder auch
    VARIABLE=`ls *.mp3 | sed -e"s/ /\\\\ /"`

    bye

  6. #6
    Manfred-B
    Gast

    Post

    Hallo
    Die variable IFS (interal file separator) auf einen linefeed setzen.
    Code:
    oldifs=$IFS
    IFS='
    '
    VARIABLE="meine erste.mp3
    meine zweite.mp3"
    for ...
    ;done
    
    IFS=$oldifs
    ...
    Grüsse

    [ 26. April 2001: Beitrag editiert von: Manfred-B ]

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •