Не решение, а простой и быстрый метод коррекции; просто введите в качестве следующей команды:
!*
Это повторит последние выданные аргументы как новую команду.
Проверено и работает нормально
#!/bin/bash
echo "enter the input"
read p
cd $p
echo "enter the file"
read f
if [[ -f $p/$f ]]
then
echo "file exsists"
grep -io "$f" $p/$f >/dev/null
if [[ $? == 0 ]]
then
r=`echo $f | sed "s/\.txt//g"`
echo $r
awk -v f="$f" -v r="$r" '{gsub(f,r,$0);print }' $f
fi
fi