Eliminar partes de una ruta usando la expansión de parámetros... pero ¿cómo?

Eliminar partes de una ruta usando la expansión de parámetros... pero ¿cómo?

necesito quitar la pieza

man1/bmtoa.1.gz

del camino completo

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

para que resulte en

/usr/compartir/man/

Probé ${path#[!/]*/*} y ${path#/*/*} pero ambos dan como resultado rutas incorrectas.

Respuesta1

Esto funcionará ${path%/*/*}, pero funciona de atrás hacia adelante.aquíes un buen procedimiento para cortar cuerdas en bash.

Respuesta2

Si pudieras lidiar con /usr/share/man/man1, entonces podrías hacerlo dirname /usr/share/man/man1/bmtoa.1.gz, pero como dijiste que necesitas que man1 también salga, tendrás que conectarlos en cadena:

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

información relacionada