>Задача найти вхождение подстроки в строке
>var1="234 345 456"
>var2="345"
>Делаю echo `expr match "$var1" '\("$var2"\)'`
>выдает пусто...хотя должен 345
>если задаю так:
>echo `expr match "$var1" '\("345"\)'` тоже пусто
>echo `expr match "$var1" '\("$234"\)'`
>выдает 234...
>НЕ могу понять в чем причина!!! Подскажите плз.!! Немного не в тему, но если в качестве разделителя один из символов $IFS, то можно искать средствами шела.
findflag() {
local l_name l_flag l_w
l_name="$1"
l_flag="$2"
for l_w in $(eval echo -E \"\${${l_name}}\"); do
case "${l_w}" in
("${l_flag}")
return 0
;;
(*)
continue
;;
esac
done
# not found
return 1
}
var1="234 345 456"
var2="345"
findflag "var1" "$var2" && echo -E "$var2"