вводит символьную строку;
во введенной строке ищет подстроку, передаваемую в качестве первого параметра;
вставляет после каждой найденной подстроки символ, передаваемый в качестве
второго параметра;
удаляет из полученной строки символ, передаваемый в качестве третьего
параметра;
выводит на экран введенную и новую строку.
проблема как я думаю кроется в участках кода где используется експр и цикл while
буду признателен тем кто поможет исправит существующий код или напишет свой
Код: Выделить всё
if test $# -lt 3
then
echo ОШИБКА неправельное число параметров
exit
fi
orign_arg=$*
echo программа по поиску в ведёной строке другой подстроки введёной в качестве п ервого параметра
echo "Введите исходную строку :"
read str1
###########
#for j in $(seq $('echo $str1|wc -w'))
#do
#tmp=$(echo $str1|cut -d " " -f$j)
#if[$tmp==$3]
#then
#tmp=" "
#fi
#out=$out$tmp
#out=$out
#done]
##########
echo Поиск
# поиск
if echo $str1 | grep $1 > /dev/null
then
end='expr length $1'
#len=$1
#end=$(length (len))
#echo $end dlinna end
beg=1
#echo $beg
#echo начало цикла
while [ $1!='echo $str1 | cut -c $beg-$end' ]
do
#beg awk '/^'
#let beg=$beg+1
#let beg=$beg+1
##end='expr $beg + 1 '
beg=expr($beg + 1)
#echo telo zikla
#let end=$end+1
#let end=$end+1
echo $str1
echo $end
end=expr($end + 1)
done
echo Должна начаться вставка
#вставка
#let beg1=$beg-1
beg1='expr $beg-1'
j='echo $str1 | cut -c $beg1'
k='echo $j$2$k'
echo 'vstavka zaverhena'
else
echo "$1 нет в исходной подстроке"
exit
fi
if echo $k |grep $3 > /dev/null
then
#let end=lenght $3
end= 'expr lenght $3'
beg1=1
while [ $3!='echo $k | cut -c $beg - $beg' ]
do
#let beg=$beg+1
beg='expr $beg+1'
#let end=$end+1
end='expr $end+1'
done
echo идёт удаление
#удаление
#let beg1=$beg-1
beg1='expr $beg - 1'
#let end=$end+1
end= 'expr $end + 1'
j='echo $k | cut -c $beg1'
g='echo $k | cut -c $end'
echo $j$g
echo исходная строка $str1
echo ещё какаято $*
echo result $a
echo rezult $b
else
exit
fi
#cho the enter string : $str1 $str2