Re: Dateinamen veraendern

From: Oliver Fromme <olli(at)dorifer.heim3.tu-clausthal.de>
Date: Sat, 8 May 1999 18:09:29 +0200 (CEST)

Matthias Teege wrote in list.de-bsd-questions:
> ich habe hier eine Menge Bilddateien von einer Photo CD. Die
> Dateinamen enden alle mit '.pcd;1'. Gibt es eine Möglichkeit mit Hilfe
> eines Scripts die Endungen der Dateien auf '.pcd' zu ändern? Wenn ja,
> welche? :-)

Tja... Vor laaanger Zeit habe ich mir auch mal überlegt, daß
es ja praktisch wäre, sowas wie das DOS-Kommando "ren" zu ha-
ben, dann könnte man im Prinzip einfach "ren *.pcd;1 *.pcd"
tippen (jaja, unter DOS ging sowas)... aber bitte jetzt nicht
hauen. :-)

Ergebnis meiner Überlegungen war das folgende Shell-Script (ich
hab's "ren" genannt). Syntax ist aber nicht mit der DOS-Ver-
sion identisch. In diesem Fall müßte man "ren 'pcd;1' pcd"
nehmen (die Quotes, um das Semikolon vor der Shell zu verstek-
ken).

Gruß
   Oliver

#!/bin/sh -

if [ $# -lt 2 ]; then
        cat <<-EOT >&2
                Usage: `basename $0` <old> <new> [<file(s)>]
                   <file(s)> is any number of filenames (default: *).
                   <old> is the old substring which is substituted by <new>.
                   sed(1) regular expressions are allowed.
        EOT
        exit 1
fi

RENOLD="$1"
RENNEW="$2"
shift 2
if [ $# -lt 1 ]; then
        for FILEOLD in *; do
                FILENEW=`echo "$FILEOLD" | sed 's/'"$RENOLD"'/'"$RENNEW"'/g'`
                if [ "x$FILEOLD" != "x$FILENEW" ]; then
                        mv -i "$FILEOLD" "$FILENEW"
                fi
        done
else
        for FILEOLD in "$@"; do
                FILENEW=`echo "$FILEOLD" | sed 's/'"$RENOLD"'/'"$RENNEW"'/g'`
                if [ "x$FILEOLD" != "x$FILENEW" ]; then
                        mv -i "$FILEOLD" "$FILENEW"
                fi
        done
fi

# EOF

-- 
Oliver Fromme, Leibnizstr. 18/61, 38678 Clausthal, Germany
(Info: finger userinfo:olli(at)dorifer.heim3.tu-clausthal.de)
"In jedem Stück Kohle wartet ein Diamant auf seine Geburt"
                                         (Terry Pratchett)
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Sat 08 May 1999 - 18:09:42 CEST

search this site