#!/bin/sh # # rename *.oldsuffix files, changing oldsuffix to newsuffix # if [ -z "$2" ] then echo usage is `basename $0` oldsuffix newsuffix exit 1 fi # first attempt -- fails for files with names containing spaces #for f in `ls *.$1` #do # oldname="$f.$1" # newname=`basename $f .$1`.$2 # if [ "$oldname" = "$newname" ] # then # echo names are the same # else # mv -v "$oldname" "$newname" # fi #done ls *.$1 | while read line do oldname="$line" newname=`basename "$oldname" .$1`.$2 #another way #newname=`echo $oldname | sed "s/\.$1/.$2/"` mv -v "$oldname" "$newname" done