Remova partes de um caminho usando expansão de parâmetros... mas como?

Remova partes de um caminho usando expansão de parâmetros... mas como?

preciso retirar a peça

man1/bmtoa.1.gz

do caminho completo

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

para que resulte

/usr/compartilhar/homem/

Eu tentei ${path#[!/]*/*} e ${path#/*/*} mas ambos resultaram em caminhos errados.

Responder1

isso funcionará ${path%/*/*}, mas funciona de trás para frente.aquié um bom tutorial para cortar cordas no bash.

Responder2

Se você pudesse lidar com /usr/share/man/man1, então você poderia fazer dirname /usr/share/man/man1/bmtoa.1.gz, mas como você declarou que precisa que o man1 também saia, você terá que conectá-los em série:

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

informação relacionada