UNIX – Script para renombrar archivos reemplazando una parte del nombre del archivo por otra.-

Script de bash, que nos permite modificar los nombre de uno o varios archivos comprendidos en una carpeta.
Tiene que recibir la cadena a buscar, la cadena a ser reemplazada si se encuentra, y el archivo o archivos a reemplazar.

#!/bin/sh
 
#
# script de bash para reemplazar parte del nombre de uno o varios archivos.
#   sh script.sh 2013 2014 log* -> Reemplzara en todos los archivos que empiezan
#                                  log y que contengan el valor 2013 por el
#                                  valor 2014, quedando por ejemplo el archivo:
#                                  log_201301.log -> log_201401.log
#
 
# Comprobamos que recibamos tres parametros
if [ $# -lt 3 ] ; then
	echo "usar: $0 [expresion] [reemplazar] archivos..."
	echo
	exit 0
fi
 
# cogemos los valores recibidos
expresion=$1
reemplazar=$2
shift;shift
 
# Bucle que pasa por todos los archivos y reemplza utilizando el comando sed
for file in $*
do
	new=`echo ${file} | sed s/${expresion}/${reemplazar}/g`
	if [ "$new" != "$file" ];then
		mv ${file} $new
		echo "Reemplazando ${file} -> $new"
	fi
done
 
exit 0
Esta entrada fue publicada en Unix - Linux. Guarda el enlace permanente.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *