Re: Leerzeichen austauschen

From: Siggy Brentrup (bsb@winnegan.de)
Date: Mon Jul 16 2001 - 11:35:34 CEST

  • Next message: Christian Weerts: "Probleme mit Kernel 2.4.5"

    Martin Schulze <joey@finlandia.infodrom.north.de> writes:

    > Weerts, Christian wrote:
    > > Hi,
    > > ich habe hier mehrere Dateien und Verzeichnisse innerhalb eines
    > > Hauptverzeichnisses deren Namen Leerzeichnen enthalten.
    > > Da mir Leerzeichen nunmal ein grauss sind, möchte ich diese
    > > gerne rekursiv durch Unterstriche ersetzen.
    > > Hat jemand einen kleinen Einzeiler auf die schnelle zur Hand?

    > find -type f |while read fname; do n=`echo "$fname"|tr ' ' _`; mv "$fname" "$n"; done
    > find -type d |while read fname; do n=`echo "$fname"|tr ' ' _`; mv "$fname" "$n"; done
    >
    > Du bekommt eine Fehlermeldung fuer jede Datei/Verzeichnis, in der kein
    > Leerzeichen enthalten ist, kannst Du aber ignorieren.

    1. Du meinst find DIR ....
    2. funkt nicht: "dir with space in name/file with space in name"

    3. Ich brauche ein kleines Hilfsscript im PATH (z.B. /usr/local/bin/despace)

    ----------------- snip ---------------
    #! /bin/sh
    # despace - replace spaces in basename with underscores

    set -e

    nam=$(basename "$1")
    dir=$(dirname "$1")

    mv "$dir/$nam" "$dir/$(echo $nam | tr ' ' _)"
    ----------------- snip ---------------

    dann:

    $ install -d test/dir\ with\ space/sub\ dir
    $ touch test/dir\ with\ space/sub\ dir/file\ with\ space
    $ find test/dir\ with\ space/
    test/dir with space/
    test/dir with space/sub dir
    test/dir with space/sub dir/file with space
    $ find test -depth -name '* *' -exec despace {} \;
    $ find test/dir_with_space/
    test/dir_with_space/
    test/dir_with_space/sub_dir
    test/dir_with_space/sub_dir/file_with_space
    $

    Gruesse
      Siggy

    -- 
    Siggy Brentrup - bsb@winnegan.de - http://www.winnegan.de/
    ****** ceterum censeo javascriptum esse restrictam *******
    



    This archive was generated by hypermail 2b30 : Mon Jul 16 2001 - 11:36:55 CEST