Recibo del usuario una determinada ruta de archivo absoluta y quiero crear una variable que será una cadena que no incluirá solo el PRIMERO dos componentes de la ruta del archivo, pero sin imprimirlo ni nada.
Por ejemplo, la ruta absoluta podría ser:
/home/myusername/folder1/folder2/folder3
Y está guardado en "target_path", y quiero que "mydir" sea solo:
/folder1/folder2/folder3
Intenté usar el comando de corte de diferentes maneras pero sin éxito.
Respuesta aceptada:
Usando la manipulación de cadenas de bash:
$ a=/home/myusername/folder1/folder2/folder3
$ echo "${a#/*/*/}"
folder1/folder2/folder3
Entonces, la cadena que desea sería (volviendo a agregar la barra inclinada inicial):
b="/${a#/*/*/}"
Para una variable a
, ${a#foo}
eliminará la cadena más corta que coincida con foo
desde el inicio de a
. Entonces, eliminamos la cadena más corta que contiene tres /
(incluida la barra inclinada inicial en la ruta), para eliminar los dos primeros componentes de la ruta absoluta.