Anzeige:
Ergebnis 1 bis 3 von 3

Thema: Script, das rekursiv Leerzeichen durch _ ersetzt...

  1. #1
    Registrierter Benutzer Avatar von SeeksTheMoon
    Registriert seit
    22.02.2002
    Beiträge
    762

    Script, das rekursiv Leerzeichen durch _ ersetzt...

    Hallo, ich brauche ein Script, das mir rekursiv von einem Startverzeichnis alle Datei- und Verzeichnisnamen raussucht, die Leerzeichen enthalten und diese durch einen Unterstrich ersetzt.

    Mir ist egal, ob es ein Shell-, Perl-, PHP-, tcl-script ist
    I haven't lost my mind - It's somewhere on a backup-disc

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

    Code:
    #!/bin/sh
    
    if [ ! -d "$1" ];
      then
      echo "Usage: $0 [DIRECTORY]"
      exit 1
    fi
    
    Dir="$1/*"
    
    while true;
      do
      for File in $Dir;
        do
        [ "$File" == "$Dir" ] && exit 0
    
        if [ -n "`echo "$File" | grep ' '`" ];
          then
          Name=`echo "$File" | sed -e 's/ /_/g'`
          mv -v "$File" "$Name"
        fi
      done
      Dir=$Dir/*
    done
    
    # Never reached ;)
    exit 0
    Gruß micha
    IRC: irc.euirc.net #tux

  3. #3
    Registrierter Benutzer
    Registriert seit
    01.08.2002
    Beiträge
    6
    Hi, hier ne perl loesung:

    Code:
    #!/usr/bin/perl
    
    use warnings;
    use strict;
    
    use File::Find;
    use File::Copy;
    
    my $Dir = ".";
    
    sub renameIt {
    
            if (/\s/) {
                    ( my $NewName = $File::Find::name ) =~ s/\s+/_/g;
                    print "\`$File::Find::name' renamed to \`$NewName'\n" if (move($File::Find::name, $NewName));
            }
    
    }
    
    find(\&renameIt, "$Dir");
    Edit: mmh.. scheint doch nich zu gehen (bei mir). Komischerweise werden die Verzeichnisse nicht rekursiv durchgegangen, sondern nur das oberste (obwohl perldoc von File::Find was anderes sagt..).
    Geändert von sh_ (01-08-2002 um 03:10 Uhr)

Lesezeichen

Berechtigungen

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