esempio String:Come dividere stringa sulla barra in bash
/gasg/string
risultato atteso: string
caratteri da rimuovere: tutti i caratteri tra i simboli "/", tra cui la simboli
esempio String:Come dividere stringa sulla barra in bash
/gasg/string
risultato atteso: string
caratteri da rimuovere: tutti i caratteri tra i simboli "/", tra cui la simboli
Con sed
:
$ echo "/gasg/string" | sed -e 's/\/.*\///g'
string
Con la manipolazione di stringhe Buil-in bash:
$ s="/gag/string"
$ echo "${s##/*/}"
string
vostre corde apparire esattamente come percorsi Unix. Ecco perché si potrebbe anche utilizzare l'utilità basename
- è returnes l'ultima parte di un dato percorso Unix:
$ basename "/gag/string"
string
# It works with relative paths and spaces too:
$ basename "gag/fas das/string bla bla"
string bla bla
La prima barra nell'espansione parametri non è necessaria. Le virgolette sul compito sono necessarie in questo caso, ma dovresti usarle per l'espansione per abitudine. –
Sono d'accordo che il primo '/' non è necessario ma l'ho aggiunto per illustrare il punto. –
Le stringhe sembrano esattamente come i nomi di percorso Unix. - Sì, era mia intenzione ottenere l'ultima partion del pathname dato e con il basename è proprio come "find -exec basename {} \;" che per me è geniale! Grazie per il suggerimento. – user1306777
AWK Inoltre - uso barra come separatore e stampa ultimo campo
echo "/gas/string" | awk -F/ '{print $NF}'
O tagliare - ma che funzionerà solo se si dispone di parità di elenchi di spogliare
echo "/gasg/string" |cut -d/ -f 3
è possibile utilizzare bash stringa manipolazione
a='/gasg/string'
echo ${a##*/}
'batween the"/"symbols' Cosa dovrebbe aprirsi se c'è una sola barra o nessuna barra? O testo prima della prima barra? –