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 messageReceived on Sat 08 May 1999 - 18:09:42 CEST