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

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: