[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[Debian]:Re: Dateinamen von Gross auf klein aendern ?



On Thu, 27 Jan 2000, Andre Vaupel wrote:

> ..und noch was kurz :-)
> 
> Wie war gleich der Befehl um grosse Verzeichnisnamen und Dateinamen 
> in Kleinbuchstaben zu wandeln ?
Ich habe mal sowas gemacht, weil bei uns Leute (Win-Fanatiker)
sämtliche Dateinamen in einem HTML-Baum (einschließlich natürlich
der Links in den Dateien) groß geschrieben haben.

Als Attachment habe ich die Sachen angehängt mit denen ich Dateinamen
und Links umgewandelt habe.

ACHTUNG:  Keine Gewähr daß irgendwas funktioniert.

Hoffe das hilft

        Andreas.
#!/usr/bin/perl -w
# Filtern der Eingabe auf Wörter mit bestimmten Erweiterungen
# und Umwandlung in Kleinschreibung der gefundenen Wörter.
# Erweiterungen können in @EXT definiert werden
#
# Copyright Andreas Tille <tillea@rki.de>
#
my ( @EXT, $ext, $zeile );

@EXT = qw ( HTM JPG GIF CSS PFR ) ;

while ( <> ) {
  $zeile = $_ ;
  @TMPEXT = @EXT;
  while ( @TMPEXT ) {
    $ext = shift (@TMPEXT) ;
    if ( $zeile =~ /\.$ext/ ) {
      $_ = $zeile ;
# hier wird noch der erste '/' weggeraspelt, was aber zu Fehlern führt     
#      s/\/*([-A-Z0-9\/_\.]*\.$ext)/\L$1/g ;
      s/([-A-Z0-9\/_\.]*\.$ext)/\L$1/g ;
      $zeile = $_ ;
    }
  }
  print $zeile ;
}

	
#!/bin/sh
# Shell Skript zum Kopieren einer Verzeichnisstruktur, wobei
# Dateinen mit Groszbuchstaben in Kleinbuchstaben umgewandelt
# werden.
# Treten in den Dateien Verweise auf Dateien auf, so werden diese
# ebenfalls in Kleinbuchstaben umgewandelt.  Dieses geschieht
# im Perl-Script uc2lc.  Dort können Dateinamenserweiterungen,
# für die das gelten soll eingegeben werden.
#
# Voraussetzungen
# find, grep, sed (möglicherweise nur GNU-sed)
# per für uc2lc-Script
#
# Copyright Andreas Tille <tillea@rki.de>
#
SRC=.
DEST=../uc2lc
TMP=/tmp/files-uc2lc

if [ _$1 != _ ] ; then
  SRC=$1
fi

if [ _$2 != _ ] ; then
  DEST=$2
fi

if [ ! -d $DEST ] ; then
  mkdir -p $DEST
fi

for dir in `find $SRC -type d | \
  grep -v "^\.$" | \
  sed "y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/" | \
  sed "s?^\./??" ` 
do
  mkdir -p $DEST/$dir
done

find . -type f | sed "s?^\./??" > $TMP

for file in `cat $TMP`
do
  dest=`echo $file | \
        sed "y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/"`
  cat $file | \
    uc2lc | \
  cat > $DEST/$dest
done

## Möglichkeiten für groß zu klein:
# perl -p -e 's/([A-Z])/\l$1/g' file
# perl -p -e 's/(.*)/\L$1/g' file
# tr '[A-Z]' '[a-z]' <file
# sed "y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/"

Reply to: