ejemplo de la secuencia:¿Cómo dividir la cadena en barra inclinada en bash
/gasg/cadena
resultado esperado: string
personajes para quitar: todos los caracteres entre los símbolos "/" incluido el símbolos
ejemplo de la secuencia:¿Cómo dividir la cadena en barra inclinada en bash
/gasg/cadena
resultado esperado: string
personajes para quitar: todos los caracteres entre los símbolos "/" incluido el símbolos
Con sed
:
$ echo "/gasg/string" | sed -e 's/\/.*\///g'
string
Con la manipulación de cadenas Buil-en bash:
$ s="/gag/string"
$ echo "${s##/*/}"
string
Sus cadenas se ven exactamente como los nombres de ruta Unix. Es por eso que también se puede utilizar la utilidad basename
- que returnes la última porción del Unix ruta determinada:
$ basename "/gag/string"
string
# It works with relative paths and spaces too:
$ basename "gag/fas das/string bla bla"
string bla bla
La primera barra en la expansión de parámetros no es necesaria. Las citas de la tarea son necesarias en este caso, pero debe usarlas para la expansión por hábito. –
Acepto que el primer '/' no es necesario, pero lo he agregado para ilustrar el punto. –
Sus cadenas se parecen exactamente a las rutas de acceso de Unix. - Sí, fue mi intención obtener la última partición del nombre de ruta dado y con el nombre de base es como "find -exec basename {} \;" que es genial para mí. Gracias por el consejo. – user1306777
también AWK - uso barra como separador y de impresión último campo
echo "/gas/string" | awk -F/ '{print $NF}'
O corte - pero que sólo funcionará si tiene igual número de directorios para despojar
echo "/gasg/string" |cut -d/ -f 3
puede utilizar la manipulación de cadenas fiesta
a='/gasg/string'
echo ${a##*/}
'entre los símbolos"/"¿Qué debería suceder si solo hay una barra oblicua o ninguna barra oblicua? O texto antes de la primera barra? –