On Miércoles, 31 de Marzo de 2010 19:40:55 Camaleón escribió:
El Wed, 31 Mar 2010 18:36:08 +0200, Angel escribió:
On Martes, 30 de Marzo de 2010 19:15:16 Camaleón escribió:
¿Cómo se podría obtener de forma inequívoca el tipo de extensión de un archivo?
Prueba con
extension=$(echo $nombre_archivo | rev | cut -f1 -d'.' | rev)
Pruebo:
sm01@stt008:~$ extension=$(echo archivo.2.5.3.tar.gz | rev | cut -f1 -d'.' | rev); echo $extension gz
¡Grrr! :-)
Saludos,
Claro ¿que esperabas? según una definición 8.3 "extendida" esa es la extensión. En Unix no hay extensión propiamente dicha por tanto nunaca podrás detectarla amenos que tengas una tabla de lookup o algo asi .tar.gz .tgz son extensiones arbitrarias.. en todo caso sabiendo que sale gz podrías intentar hacer match de .tar pero siempre será una solución de compromiso. yo haria: archivo-XXX.ext1.ext2.tar.gz -> 'gz' 'tar' 'ext2' 'ext1' archivo-XXX y lo pasaria todo a una funcion al que case $1 in "gz") case "$2" in "tar") esac esac ... y así para unos cuantos casos de interes.. probablemnte llamaria a file para que me dijera de que tipo es el archivo y ahorrarme quebrraderos de cabeza... Most people know C is not so high level.... ...Everybody else just got assembler overdose -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org