ファイル名の拡張子を変更する

#!/bin/sh
#chgext.sh

if [ $# -lt 2 ]; then
    echo "Usage: chgext.sh .newext files..."
    exit 1
fi

newext="$1"
shift
#新しい拡張子が.で始まっていない場合付け加える
expr "$newext" : '\.' > /dev/null || newext=".${newext}"

for fname do
    bname=`echo "$fname" | sed 's/\.[^.]*$//'`
    mv "$fname" "${bname}${newext}"
done
$ ./chgext.sh text 1.txt

$ ls
1.text  chgext.sh