拡張子がtxtのファイルから指定文字列を置換する

#!/bin/sh
#changeText.sh [-d Directory] SrcString DistString

OPTIONS="d:"
FINDDIR="."
TMPDIR="/tmp/"
TMPFILE="changeText.tmp"

DATE="/bin/date"
FIND="/usr/bin/find"
GREP="/usr/bin/grep"
WC="/usr/bin/wc -l"
CAT="/bin/cat"
RM="/bin/rm -f"
CP="/usr/bin/cp"

#オプションの処理
while getopts $OPTIONS opt $@ ;do
    case "$opt" in
        d)
            if [ -d $OPTARG ]; then
                FINDDIR=$OPTARG
            else
                echo "指定したディレクトリが存在しません" 1>&2
                exit -1
            fi
            ;;
        *)  exit -1 ;;
    esac
done

#検索文字列オプションと置換文字列オプションの処理
shift $(( $OPTIND -1 ))
if [ $# -eq 0 ]; then
    echo "検索,置換文字列が指定されていません" 1>&2
    exit -1 
elif [ $# -eq 1 ]; then
    echo "置換の文字列が指定されていません" 1>&2
    exit -1
elif [ $# -eq 2 ]; then
    SEARCHSTRING="$1"
    REPLACESTRING="$2"
else
    echo "オプションが多いです" 1>&2
    exit -1
fi

#メイン処理
DATETIME=$(LAND=C;$DATE "+%Y-%m-%d-%X")
TMPFILE1="${TMPDIR}${TMPFILE}1.$DATETIME"
TMPFILE2="${TMPDIR}${TMPFILE}2.$DATETIME"
TMPFILE3="${TMPDIR}${TMPFILE}3.$DATETIME"

$FIND $FINDDIR -name "*.txt" > "$TMPFILE1" 

while read filename ; do
    if [ -f "$filename" ]; then
        "$GREP" "$SEARCHSTRING" "$filename" > "$TMPFILE2"
        wc1=$($CAT "2" | $WC)
        wc2="${wc1// }"
        if [ 0 -lt $wc1 ]; then
            $CP /dev/null "$TMPFILE3"
            while read line ; do
                line="${line//${SEARCHSTRING}/${REPLACESTRING}}"
                echo "$line" >> "$TMPFILE3"
            done < "$filename"
            CP "$TMPFILE3" "$filename"
            echo -e "ファイル ${filename} には文字列 ${SEARCHSTRING} \
を含む行が${wc1}行があったので ${REPLACESTRING} に置き換えました"
        fi
    fi
done < "$TMPFILE1"

if [ -f "$TMPFILE1" ]; then
    $RM "$TMPFILE1"
fi
if [ -f "$TMPFILE2" ]; then
    $RM "$TMPFILE2"
fi
if [ -f "$TMPFILE3" ]; then
    $RM "$TMPFILE3"
fi