Ricevo dall'utente un certo percorso di file assoluto e voglio creare una variabile che sarà una stringa che non includerà solo il PRIMO due componenti del percorso del file, ma senza stamparlo o altro.
Ad esempio, il percorso assoluto potrebbe essere:
/home/myusername/folder1/folder2/folder3
Ed è salvato in "target_path" e voglio che "mydir" sia solo:
/folder1/folder2/folder3
Ho provato a usare il comando cut in diversi modi ma senza successo.
Risposta accettata:
Usando la manipolazione delle stringhe di bash:
$ a=/home/myusername/folder1/folder2/folder3
$ echo "${a#/*/*/}"
folder1/folder2/folder3
Quindi, la stringa che desideri sarebbe (aggiungendo nuovamente la barra iniziale):
b="/${a#/*/*/}"
Per una variabile a , ${a#foo} rimuoverà la stringa più corta che corrisponde a foo dall'inizio di a . Quindi, rimuoviamo la stringa più breve contenente tre / (compresa la barra iniziale nel percorso), per rimuovere i primi due componenti del percorso assoluto.