Используйте это, если вы хотите напечатать последние 2 раздела пути:
$ a='/var/www/test/some/page3.html'
$ [[ $a =~ [^/]+/[^/]+$ ]] && a="${BASH_REMATCH[0]}"
$ echo "$a"
some/page3.html
Используйте это, если вы хотите удалить первые 3 раздела пути:
$ a="/var/www/test/some/page3.html"
$ [[ $a =~ ^(/[^/]+){3}/(.*) ]] && a="${BASH_REMATCH[2]}"
$ echo "$a"
some/page3.html
Idk, который выхочу сделать, так как оба подхода приведут к ожидаемому результату из одного примера ввода.Выберите, что вы хотите сделать, учитывая это:
$ a="/foo/var/www/test/some/page3.html"
$ [[ $a =~ [^/]+/[^/]+$ ]] && echo "${BASH_REMATCH[0]}"
some/page3.html
$ [[ $a =~ ^(/[^/]+){3}/(.*) ]] && echo "${BASH_REMATCH[2]}"
test/some/page3.html