#!/bin/bash
function append_beginning ()
{ while read line1; do
mv "$line1" "$1""$line1"
echo "$line1" renamed to "$1$line1"
done
}
function append_end ()
{ while read line1; do
mv "$line1" "$line1""$1"
echo "$line1" renamed to "$line1$1"
done
}
function remove_beginning ()
{ while read line1; do
newname=${line1/#"$1"/}
mv "$line1" "$newname"
echo "$line1" renamed to "$newname"
done
}
function remove_end ()
{ while read line1; do
newname=${line1/%$1/}
mv "$line1" "$newname"
echo $line1 renamed to $newname
done
}
function abort ()
{
echo "Rename aborted."
echo
exit 0
}
if [ -z "$1" ] || [ -z "$2" ] || [ "$1" != "ab" ] && [ "$1" != "ae" ] && [ "$1" != "rb" ] && [ "$1" != "re" ]; then
echo
echo "Modify all filenames in the working directory"
echo "Usage: modfn option "
echo
echo "Options:"
echo " ab - append string to beginning of all filenames"
echo " ae - append string to end of all filenames"
echo " rb - remove string from beginning of all filenames"
echo " re - remove string from end of all filenames"
echo
exit 1
fi
if [ "$1" == "ab" ]; then
echo -ne "Ready to append "$2" to the beginning of all files, are you sure? : "
read line1
if [ "$line1" == "y" ]; then
ls -1 | append_beginning "$2"
exit 0
else
abort
fi
fi
if [ "$1" == "ae" ]; then
echo -ne "Ready to append "$2" to the end of all files, are you sure? : "
read line1
if [ "$line1" == "y" ]; then
ls -1 | append_end "$2"
exit 0
else
abort
fi
fi
if [ "$1" == "rb" ]; then
echo -ne "Ready to remove "$2" from the beginning of all files, are you sure? : "
read line1
if [ "$line1" == "y" ]; then
ls -1 | remove_beginning "$2"
exit 0
else
abort
fi
fi
if [ "$1" == "re" ]; then
echo -ne "Ready to remove "$2" from the end of all files, are you sure? : "
read line1
if [ "$line1" == "y" ]; then
ls -1 | remove_end "$2"
exit 0
else
abort
fi
fi