Удалить части пути, используя расширение параметров... но как?
Мне нужно убрать часть
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`