Separar nombre y extension en bash

Supongamos que queremos hacer un script en bash que recorra los nombres de todos los ficheros de un directorio (estos nombres siguen el patrón nombre.ext, por ejemplo imagen01.png, imagen02.png, grafico.png,…)

Si guardamos en foo la ruta a nuestro fichero:

foo=/tmp/mi.directorio/imagen.png

Podemos usar las siguientes intrucciones de manipulación de strings en Bash:

path = ${foo%/*}
Para obtener: /tmp/mi.directorio

file = ${foo##*/}
Para obtener: imagen.png

base = ${file%%.*}
Para obtener: imagen

ext = ${file#*.}
para obtener: png

Todos estos trucos y más, los podéis ver en detalle en este artículo ya muy viejito pero igual de útil que al principio de Linux Gazette

Deja una respuesta