разделенная строка пути с субирами и без них

как разделить эту строку, если после / different?

У меня такие пути :

/HDD1/Movies/Excursion.2016/
/HDD1/Movies/Excursion.2016/name1
/HDD1/Movies/Excursion.2016/name2
/HDD1/Movies/Excursion.2016/name3

мой сценарий :

d=/HDD1/Movies/Excursion.2016/
dname=${d#/*/}
dname=${dname%/*}
echo $dname

выход: кино / экскурсия.2016

d=/HDD1/Movies/Excursion.2016/name1
dname=${d#/*/}
dname=${dname%/*}
echo $dname

выход: кино / экскурсия.2016

Я всегда хочу все / фильмы/

Образец :

d=/HDD1/Movies/Excursion.2016/
output : Excursion.2016

d=/HDD1/Movies/Excursion.2016/name1
output : Excursion.2016/name1

d=/HDD1/Movies/Excursion.2016/name2
output : Excursion.2016/name2

1 ответ

  1. Попробуйте это (предупреждение, используемый синтаксис bash):

    main_dir=/HDD1
    complete_path="$main_dir/Movies/Excursion.2016/name2"
    if
      [[ "$complete_path" =~ $main_dir/[^/]+/(.+)$ ]]
    then
      echo "${BASH_REMATCH[1]}"
    else
      echo "Path not valid" >&2
    fi