Programación en BASH - 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
Encriptación
12 - Mas scripts
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
Valora este capítulo:
Autor y licencia de 'Programación en BASH - Mas scripts'
|
Opiniona sobre 'Programación en BASH - Mas scripts' (1)
Tu nombre debe tener tres caracteres como mínimo.
Es necesario que te des de alta con una cuenta de correo válida.
Es necesario que te des de alta con una cuenta de correo válida.
El contenido del título de tu opinión debe tener tres caracteres como mínimo.
Es obligatorio que selecciones una valoración del recurso.
El contenido del comentario de tu opinión debe tener tres caracteres como mínimo.
Opina sobre este tutorial |
Wikis relacionados con 'Programación en BASH - Mas scripts'
Incluye una gran variedad de vocabulario, en su traducción española.
Se comenta la creación y el manejo de prompts de terminales en modo texto y...
Más »
No conocerás lo que es Linux hasta que no conozcas la consola . La consola...
Más »
Continuando el tema de uno de mis artículos anteriores, sobre cómo mejorar el rendimiento de...
Más »
La Magía es energia por consiguiente esta en perpetua transformación. En el libro de las...
Más »

