Удалить части пути с помощью расширения параметров... но как?

Удалить части пути с помощью расширения параметров... но как?

Мне нужно удалить часть

man1/bmtoa.1.gz

от полного пути

/usr/share/man/man1/bmtoa.1.gz

так что это приводит к

/usr/share/человек/

Я пробовал ${path#[!/]*/*} и ${path#/*/*}, но оба результата дают неверные пути.

решение1

это сработает ${path%/*/*}, но работает сзади вперед.здесьхорошее руководство по обрезке строк в bash.

решение2

Если бы вы могли справиться с /usr/share/man/man1, то вы могли бы сделать dirname /usr/share/man/man1/bmtoa.1.gz, но поскольку вы заявили, что вам нужно, чтобы man1 также отключился, вам придется соединить их последовательно:

dirname `dirname /usr/share/man1/bmtoa.1.gz`

Связанный контент