Código de Linux/Unix Shell Scripting - Script para renombrar archivos reemplazando una parte del nombre del archivo por otra

Imágen de perfil

Script para renombrar archivos reemplazando una parte del nombre del archivo por otragráfica de visualizaciones


Linux/Unix Shell Scripting

estrellaestrellaestrellaestrellaestrella(1)
Publicado el 11 de Septiembre del 2014 por Xavi
3.784 visualizaciones desde el 11 de Septiembre del 2014. Una media de 35 por semana
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.

Versión 1
estrellaestrellaestrellaestrellaestrella(1)

Publicado el 11 de Septiembre del 2014gráfica de visualizaciones de la versión: Versión 1
3.785 visualizaciones desde el 11 de Septiembre del 2014. Una media de 35 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/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



Comentarios sobre la versión: Versión 1 (1)

NoSeTo Davia
17 de Diciembre del 2014
estrellaestrellaestrellaestrellaestrella
El bucle no sera
for file in $3 en vez de for file in $*?
Responder

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios

http://lwp-l.com/s2760