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.