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

Мне нужно убрать часть

man1/bmtoa.1.gz

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

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

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

/ USR / доли / человек /

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

2 ответа

Это будет работать ${path%/*/*}, но работает сзади на фронт. Вот хорошая инструкция для измельчения строк в Bash.

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

dirname `dirname /usr/share/man1/bmtoa.1.gz`
Другие вопросы по тегам