tip für shellskript Dateiname und Dateisuffix trennen
Hallo,
in einem shellskript möchte ich gerne x Kopien einer Datei anlegen.
dabei sollen die Dateinamen der neu erzeugten Dateien wie folgt
aufgebaut sein:
Dateiname + laufendeNummer + suffix
Das kann doch eigentlich nicht so schwer sein, aber ich kriege es trotz
langer Suche nicht hin. Vielleicht habt Ihr ja noch einen Tip, bevorzugt
ohne komplexe sed Konstrukte ;) Mit ${fname%.*} kann ich jetzt zwar das
suffix rausschmeissen, aber wie kriege ich hinterher wieder ds richtige
suffix dran?
danke,
Hans
++snipp+++
#! /bin/bash
#
# Very simpleminded "multiplecopy" utility (based on "???").
#
# The "ren" utility, by Vladimir Lanin (lanin@csd2.nyu.edu),
#+ does a much better job of this.
ARGS=2
E_BADARGS=65
# check for syntax of calling commando
if [ $# -ne "$ARGS" ]
then
echo "Benutzung: `basename $0` Anzahl Datei"
# As in "rn gif jpg", which renames all gif files in working
directory to jpg.
exit $E_BADARGS
fi
#check if file exists
if [ -f "$2" ]
then
for ((a=1;a<=$1;a++)) #loop for 'a' times
do
fname=`basename $2` # Strip off path.
n=`echo $fname | sed -e "s/$1/$2/"` # Substitute new for
old in filename.
fnamebase=${fname%.*}
fnamenew=$fnamebase+$a
# cp $fname $fname.$a # copy file
echo "N: $n fname: $fname a: $a pn: $pn"
done
fi
echo "$a Dateien kopiert."
exit 0
Reply to: