When renaming lots of files you usually resort to your typical for f in … command line with a sed command or similar included, or perhaps you use rename(1) but sometimes it’s just easier if you can use your normal editor. In my case this is vim, where I can then use various nice things such as changes on blocks, or just ad hoc changes to the file names. To accomplish this in an easy way I use an old quick hack; which is the following script that I’ve named viren:
#!/bin/sh
# viren
# Rename files using an editor (vim in this case)
FNEW=`mktemp -t`
FORIG=`mktemp -t`
FCMDS=`mktemp -t`
for i in $*
do
echo "\"$i\"" >> $FORIG
done
cat $FORIG > $FNEW
vim $FNEW
wcn=`wc -l $FNEW | cut -d\ -f1`
wco=`wc -l $FORIG | cut -d\ -f1`
# go ahead if the line count is the same
if [ $wcn -eq $wco ]
then
paste $FORIG $FNEW | sed -e 's/^/mv /g' > $FCMDS
source $FCMDS
echo Renamed/moved files
else
echo Aborted rename/move
fi
rm $FNEW $FORIG $FCMDS