#!/bin/bash
# Script para descomponer una ruta completa a un archivo o
# directorio, obteniendo el nombre de archivo y extensión (si
# existen) y ruta hasta los mismos
for RutaCompleta in $1
do
# Comenzamos extrayendo la parte derecha desde el ultimo caracter
# "/", es decir, el archivo
NombreArchivo="${RutaCompleta##*/}"
# Longitud de la ruta es el total de caracteres menos el largo del
# nombre de archivo
LargoRuta="${#RutaCompleta} - ${#NombreArchivo}"
# Extraemos la ruta desde el caracter 0 hasta el caracter final de
# largo de ruta
RutaSola="${RutaCompleta:0:$LargoRuta}"
# Lo siguiente es extraer nombre de archivo
NombreSolo="${NombreArchivo%.[^.]*}"
# Extension se obtiene eliminando del nombre completo el nombre mas
# el punto
Extension="${NombreArchivo:${#NombreSolo} + 1}"
# Las 2 lineas anteriores fallan si no hay extension por lo que es
# necesario comprobar que no se de el caso de que haya extension
# pero no nombre ya que en ese caso la ext seria el nombre
if [[ -z "$NombreSolo" && -n "$Extension" ]]; then
NombreSolo=".$Extension"
Extension=""
fi
done
# Este es el resultado del script
echo
echo "Este es el resultado del script:"
echo
echo La ruta completa es:
echo $RutaCompleta
echo
echo "Ruta.........: \"$RutaSola\""
echo "Nombre.......: \"$NombreSolo\""
echo "Extension....: \"$Extension\""
echo
miércoles, 23 de noviembre de 2011
Shell Bash: Descomponer una ruta en directorios, nombre de archivo y extensión
El siguiente script (shell Bash) descompone una ruta en directorios, nombre de archivo y extensión.
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario