Anzeige:
Ergebnis 1 bis 8 von 8

Thema: scripthilfe gesucht; ersetzen von leerzeichen in bezeichnern von dir/file

  1. #1
    Registrierter Benutzer
    Registriert seit
    Apr 2010
    Beiträge
    47

    scripthilfe gesucht; ersetzen von leerzeichen in bezeichnern von dir/file

    hallo,
    kann mir jemand ein script zeigen, dass automatisch alle bezeichner von verzeichnissen und dateien ab einem bestimmten wurzelverzeichniss dahingehens ändert, dass all diese im nachhinein keine leerzeichen mehr enthalten. diese könnten z.b. durch unterstriche ersetzt werden. bsw:
    foo\ bar/datei\ 1 wird zu foo_bar/datei_1
    der grund ist, dass das tool mgzip leerzeichen immer mit dem ente des parameters assoziiert.
    Code:
    # ls
    asd asd
    # ls asd\ asd/qwe\ qwe/test\ datei.vmdk
    asd asd/qwe qwe/test datei.vmdk
    # mgzip -p9t 3 asd\ asd/qwe\ qwe/test\ datei.vmdk
    touch: konnte Attribute von 'asd' nicht holen: Datei oder Verzeichnis nicht gefunden
    ich würde mich über schnelle hilfe freuen
    danke

  2. #2
    Registrierter Benutzer Avatar von drcux
    Registriert seit
    Oct 2003
    Beiträge
    6.989
    wie sieht es mit

    Code:
    mgzip -p9t 3 "asd asd/qwe qwe/test datei.vmdk"
    aus?

    ansonsten:

    Code:
    OLDIFS=$IFS
    IFS=$'\n'
    files=`find /pfad -name "* *"`
    for f in $files; do echo $f; new=`echo $f | sed "s| |_|g"`; echo " --> "$new; done
    IFS=$OLDIFS
    Wobei echo " --> " $new dann durch rename $f $new ersetzt werden muss.

  3. #3
    Registrierter Benutzer
    Registriert seit
    Apr 2010
    Beiträge
    47
    leider:
    Code:
    # mgzip -p9t 3 "asd asd/qwe qwe/test datei.vmdk"
    touch: konnte Attribute von âasdâ nicht holen: Datei oder Verzeichnis nicht gefunden
    :-/
    ich schau mir mal dein script an, danke

  4. #4
    Registrierter Benutzer
    Registriert seit
    Apr 2010
    Beiträge
    47
    es gibt ein problem mit diesem script. es findet als erstes den obersten ordner, benennt diesen um und ist dann nicht mehr in der lage eine ebene tiefer zu gehen um dort die ordner und datein umzubenennen, weil durch die umbenennung der pfad ungültig wird. außerdem funktioniert 'rename' bei mir nicht. ich habe es durch mv ersetzt. um das andere problem zu lösen habe ich das scrip ein wenig verändert:
    Code:
    #!/bin/bash
    OLDIFS=$IFS
    IFS=$'\n'
    files=`find ./ -name "* *"`
    for f in $files; do
            new=`echo $f | sed "s| |_|g"`;
            mv $f $new;
            files=`find ./ -name "* *"`;
    done
    IFS=$OLDIFS
    es mach t nun eigentlich alles was es soll, aber beim ausführen kommen trotzdem meldungen:
    Code:
    # ./replacer
    mv: Aufruf von stat fÜr `./asd asd/qwe qweâ nicht möglich: Datei oder Verzeichnis nicht gefunden
    mv: Aufruf von stat für `./asd asd/qwe qwe/a a.vmdk` nicht möglich: Datei oder Verzeichnis nicht gefunden
    wie kann ich das interpretieren? ignorieren möchte ich es nicht.

  5. #5
    Registrierter Benutzer Avatar von HirschHeisseIch
    Registriert seit
    Nov 2002
    Beiträge
    3.276
    ren sollte sowas können.

    Ansonsten dem find vielleicht lieber ein -exec mitgeben...
    RTFM you have to, young padawan.

  6. #6
    Registrierter Benutzer Avatar von drcux
    Registriert seit
    Oct 2003
    Beiträge
    6.989
    mv "$f" "$new";

    Quoten nie vergessen!

    Und find vielleicht erstmal nur auf Dateien loslassen: find -type f

  7. #7
    Registrierter Benutzer
    Registriert seit
    Apr 2010
    Beiträge
    47
    @hirsch -exec verstehe ich nicht. in wie fern nützt mir das was?
    @drcux -type f ? warum bringt mich das weiter?

  8. #8
    Registrierter Benutzer
    Registriert seit
    Apr 2010
    Beiträge
    47
    die sache hat sich erledigt, das problem lag an einer anderen stelle. war trotzdem interessant.

Ähnliche Themen

  1. Debian Upgrade auf (lenny): vi: symbol lookup error: /usr/lib/libgtk-x11-2.0.so.0
    Von XXLRay im Forum System installieren und konfigurieren
    Antworten: 31
    Letzter Beitrag: 29.05.08, 17:15

Lesezeichen

Berechtigungen

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