Archiv verlassen und diese Seite im Standarddesign anzeigen : Script, das rekursiv Leerzeichen durch _ ersetzt...
SeeksTheMoon
30-07-2002, 18:39
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
Hi,
#!/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
Hi, hier ne perl loesung:
#!/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..).
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.