Используйте одинарные кавычки за 9 001 M$, если Вы соответствуете точному значению.
if [[ "$H_OR_T" = 'M$9001' ]]; then
...
fi
$ expr /home/oracle/ggs/text.ext : '/home/\(.*\)/'
oracle/ggs
, который возвращает часть после /дома/
и до последнего /
.
Другие возможные подходы, которые отвечают вашим требованиям:
$ echo /home/oracle/ggs/text.ext | cut -d/ -f3,4
oracle/ggs
$ echo /home/oracle/ggs/text.ext | cut -c 7-16
oracle/ggs
$ echo oracle/ggs
oracle/ggs
Для данного примера можно использовать awk
:
echo "$string" | awk -F '/' '{printf "%s%s%s\n" ,$2,FS,$3}'
То же самое в Perl:
echo "$string" | perl -lanF '/' -E '$,="/";say @F[1,2]'
Бэш
IFS=/ read -ra a <<<'/home/oracle/ggs/text.ext' &&
(IFS=/; printf '%s\n' "${a[*]:2:2}")
oracle/ggs