Si tienes dudas o problemas, o prefieres pasar el tiempo, éste es tu lugar. Un lugar donde todos compartimos algo en común: GNU/Linux. "Somos más linuxeros que Torvalds y más barbudos que Stallman".

Ver más
  • 14,905 Miembros
  • 19,130 Temas
  • 3,850 Seguidores
  • 0

[Solucionado] Shell script renombrar archivos

Hola estoy haciendo un practico sobre scripting en la universidad y se me presentaron dificultades en un ejercicio...

Renombrando_Archivos: haga un script que renombre solo archivos de un
directorio pasado como parametro agregandole una CADENA, contemplando las
opciones:
 “-a CADENA”: renombra el fichero concatenando CADENA al final
del nombre del archivo
 “-b CADENA”: renombra el fichero concantenado CADENA al
principio del nombre del archivo

Ejemplo si en /temp existe un archivo "b"

./renombra /tmp/ -a EJ
Resultado: /tmp/aEJ /tmp/bEJ
./renombra /tmp/ -b EJ
Resultado: /tmp/EJa /tmp/EJb

eluney89 dijo:

para probar un poco de código escribí lo siguiente con un ls funciona pero me modifica hasta los directorios entonces decidi concatenar el ls -l (para tener la información de cuales son los directorios) con un grep -v d (para que solo me arroje los datos de los archivos), el problema es que el for me itera por cada uno de los datos que arroja el ls -l |grep -v d (es decir los permisos, el dueño del archivo, el nombre del archivo,etc) y no reconoce ninguna cadena como nombre de un archivo valido




nota: esto de ninguna manera lo pensé como código final

cd $1
##me posiciono en el directorio


for fichero in `ls -l | grep -v d` do
mv $fichero ${fichero}$2
##luego cambiaria esto segun corresponda

done
## y también después me ocupo de verificar por -a o -b

##por favor ignoren como administro los parámetros $1, $2


eluney89 dijo:

entonces la pregunta sería con este comando ls -l | grep -v d existe alguna forma de solo seleccionar la columna donde se indica el nombre del archivo? o también si existe algún otro método que me permita iterar la modificación de los nombres de archivos.



  • 0
  • 0Calificación
  • 1Seguidores
  • 417Visitas
  • 0Favoritos

4 comentarios

@DurrutiBuenaventura Hace más de 11 meses

ls -l|grep -v ^d|awk '{print $9}'


Prueba qué tal te anda eso.
@adicto_al_cafe Hace más de 11 meses
eluney89 dijo:


ls -l|grep -v ^d|awk '{print $9}'


Prueba qué tal te anda eso.


Funciona!, pero solo con archivos cuyo nombre no contengan espacios



Aca tenes mas scrips, agregar guiones bajos, espacios.etc

http://www.taringa.net/posts/linux/14855193/Scripts-que-te-haran-la-vida-mas-sencilla.html
Los comentarios se encuentran cerrados
Tienes que ser miembro para responder en este tema