Programación en BASH - Mas scripts

12 - Mas scripts

Tutorial creado por Mike G. Extraido de: http://www.insflug.org/COMOs/Bash-Prog-Intro-COMO/Bash-Prog-Intro-COMO.html
03 de Enero de 2007

12.1 Aplicando un comando a todos los ficheros de un directorio.

12.2 Ejemplo: Un script de copia de seguridad muy simple (algo mejor)

            #!/bin/bash          
            ORIG="/home/"
            DEST="/var/copias_de_seguridad/"
            FICH=home-$(date +%Y%m%d).tgz
            tar -cZf $DEST$FICH $ORIG
           

12.3 Re-nombrador de ficheros

          
             #!/bin/sh
             # renom: renombra múltiples ficheros de acuerdo con ciertas
             # reglas
             # escrito por Felix Hudson  Enero - 2000
             
             # primero comprueba los distintos 'modos' que tiene este
             # programa
             # si la primera ($1) condición coincide, se ejecuta esa parte
             # del programa y acaba
             
             # comprueba la condición de prefijo
             if [ $1 = p ]; then
             
             # ahora nos libramos de la variable de modo ($1) y ponemos $2
             # de prefijo
               prefijo=$2 ; shift ; shift
             
             # una rápida comprobación para ver si se especificó algún
             # fichero
             # si no, hay cosas mejores que hacer que renombrar ficheros
             # inexistentes!!
               if [$1 = ]; then
                  echo "no se especificaron ficheros"
                  exit 0
               fi
             
             # este bucle for itera a lo largo de todos los ficheros que
             # le hemos especificado al programa
             # renombra cada uno de ellos
               for fichero in $*
                 do
                 mv ${fichero} $prefijo$fichero
               done
             
             # ahora salimos del programa
               exit 0
             fi
             
             # comprueba si es un renombramiento con sufijo
             # el resto es casi idéntico a la parte anterior
             # lea los comentarios anteriores
             if [ $1 = s ]; then
               sufijo=$2 ; shift ; shift
             
                if [$1 = ]; then
                 echo "no se especificaron ficheros"
                exit 0
                fi
             
              for fichero in $*
               do
                mv ${fichero} $fichero$sufijo
              done
             
              exit 0
             fi
             
             # comprueba si es una sustitución
             if [ $1 = r ]; then
             
               shift
             
             # he incluído esto para no dañar ningún fichero si el
             # usuario no especifica que se haga nada
             # tan sólo una medida de seguridad             
               if [ $# -lt 3 ] ; then
                 echo "uso: renom r [expresión] [sustituto] ficheros... "
                 exit 0
               fi
             
             # elimina el resto de información
               VIEJO=$1 ; NUEVO=$2 ; shift ; shift
             
             # este bucle for itera a lo largo de todos los ficheros que
             # le hemos especificado al programa
             # renombra cada fichero utilizando el programa 'sed'
             # es un sencillo programa desde la línea de comandos que
             # analiza la entrada estándar y sustituye una expresión por
             # una cadena dada
             # aquí le pasamos el nombre del fichero (como entrada
             # estándar)
               for fichero in $*
               do
                 nuevo=`echo ${fichero} | sed s/${VIEJO}/${NUEVO}/g`
                 mv ${fichero} $nuevo
               done
             exit 0
             fi
             
             # si se llega a esta parte es que no se le pasó nada
             # apropiado al programa, por lo que le decimos al usuario
             # cómo hacerlo
             echo "uso:"
             echo " renom p [prefijo] ficheros.."
             echo " renom s [sufijo] ficheros.."
             echo " renom r [expresión] [sustituto] ficheros.."
             exit 0
             
             # hecho!
             
          

12.4 Re-nombrador de ficheros (sencillo)

     #!/bin/bash
     # renombra.sh
     # renombrador de ficheros básico

     criterio=$1
     expresion=$2
     sustituto=$3
     
     for i in $( ls *$criterio* ); 
     do
         orig=$i
         dest=$(echo $i | sed -e "s/$expresion/$sustituto/")
         mv $orig $dest
     done

5 opiniones

bajo

Creo que deberias elaborar algo nuevo y no solo copiar y pegar de un libro
Una pija

Lastima q copiaste y pegaste...
COpion

Lastima q copiaste y pegaste...
es un asco


n0 hay nd interesante..
he buscado por horas y nd encuentro.. deberían restringir estas páginas tontas..
BIEN

Esta muy bien explicado... me gustó.. encontré la respuesta que quería.

Tutoriales relacionados con 'Programación en BASH'

Este artículo pretende ayudarle a comenzar a programar shell scripts a un nivel básico/intermedio. No... Más »
Este documento describe el protocolo y los métodos a seguir para mantener y participar en... Más »
Si tuviera que buscar un adjetivo para calificar a Sendmail, pensaría en "excesivo". Excesivo puesto... Más »
El siguiente documento deriva del famoso feddi. Como que acompaña a los paquetes del FEddi+bt,... Más »
Debian es el nombre de una organización dedicada al desarrollo y mantenimiento de sistemas operativos... Más »

Autor y licencia de 'Programación en BASH'

Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.