
Tengo datos de muestra como:
aaa/bbb/ccc/ddd/eee/fff
aaa/bbb/ccc/ddd/eee/fff/gg
aaa/bbb/ccc/ddd/eee/fff/gg/hhhhh
¿Cómo puedo analizar solo:
fff
gg
hhhhh
con vim o bash?
Gracias
Respuesta1
Puedes usar awk
. Quieres el último campo pero tienes un delimitador diferente.
-F: --separador de campo.
Awk NF le brinda el número total de campos en un registro. Entonces, cuando digo NF, contiene el último número de campo o su índice. entonces {print $NF} es similar a { print $1} o {print $2}.
➜ awk -F'/' '{print $NF}' test.txt
fff
gg
hhhhh
Respuesta2
Con Vim puedes usar lo siguiente para eliminar todo antes de la última barra ( /
):
:%s/.*\///
Podrías hacer algo similar con sed
:
sed 's/.*\///' file
Respuesta3
Bash probablemente no sea la primera opción para esto:
mapfile -t < data; printf %s\\n "${MAPFILE[@]##*/}"