Foros del Web » Administración de Sistemas » Unix / Linux »

Shell script que busque en diferentes directorios

Estas en el tema de Shell script que busque en diferentes directorios en el foro de Unix / Linux en Foros del Web. Buenos días a todos. Necesito crear un script que haga lo siguiente: recorrer una serie de directorios ordenados por una numeración /directorio_1/a/ /directorio_2/a/ /directorio_3/a/ ... ...
  #1 (permalink)  
Antiguo 23/06/2009, 00:46
 
Fecha de Ingreso: diciembre-2004
Mensajes: 177
Antigüedad: 19 años, 4 meses
Puntos: 0
Shell script que busque en diferentes directorios

Buenos días a todos.

Necesito crear un script que haga lo siguiente:

recorrer una serie de directorios ordenados por una numeración

/directorio_1/a/
/directorio_2/a/
/directorio_3/a/
...

en cada uno de ellos tengo el mismo archivo llamado "system.pdf"

Se trataría de recorrer esos directorios, localizar el archivo y copiarlo a otro directorio /tmp
El problema añadido es que para saber de qué directorio provienen, además de moverlo a /tmp necesito renombrarlos por el nombre del directorio de dónde provienen, de tal modo que /tmp me muestre algo parecido a esto:

directorio_1.pdf
directorio_2.pdf
directorio_3.pdf
...

Llevo demasiados días intentando diferentes soluciones, pero no logro dar con nada que funcione :(
__________________
El futuro tiene muchos nombres. Para los débiles es lo inalcanzable. Para los temerosos, lo desconocido. Para los valientes es la oportunidad.
  #2 (permalink)  
Antiguo 23/06/2009, 09:17
Avatar de AleSanchez
Colaborador
 
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires, Argentina
Mensajes: 3.692
Antigüedad: 19 años, 7 meses
Puntos: 47
Respuesta: Shell script que busque en diferentes directorios

Muéstranos esas soluciones fallidas para ver en dónde está el problema.

Saludos.
__________________
¡Volviendo a la programación!
  #3 (permalink)  
Antiguo 25/06/2009, 03:55
 
Fecha de Ingreso: diciembre-2004
Mensajes: 177
Antigüedad: 19 años, 4 meses
Puntos: 0
Respuesta: Shell script que busque en diferentes directorios

Mira, en un primer momento pensé en algo como esto:

#!/bin/bash
VA="1"
echo $VA
for oldfile in $(find . -name system.pdf) do cp "$oldfile" ./tmp/system$VA.txt
((VA=$VA+1))
done

... pero renombra el fichero antes de moverlo :(

También he pensado en hacerlo en 2 partes: una primera que vaya buscando esos archivos y copie el path entero en un fichero de texto, y una segunda que lea el fichero de texto registro a registro y renombre el archivo con el nombre del "directorio de origen.pdf"
__________________
El futuro tiene muchos nombres. Para los débiles es lo inalcanzable. Para los temerosos, lo desconocido. Para los valientes es la oportunidad.
  #4 (permalink)  
Antiguo 25/06/2009, 08:28
Avatar de ociomax
Colaborador
 
Fecha de Ingreso: mayo-2002
Ubicación: Temuco, Chile
Mensajes: 5.595
Antigüedad: 22 años
Puntos: 35
Respuesta: Shell script que busque en diferentes directorios

Suponiendo que sean 100 directorios, creo que lo más fácil sería algo como:
Código:
for i in `seq 1 100`
do
   cp -v /directorio_$i/a/system.pdf /tmp/directorio_$i.pdf
done
__________________
Christian González, "OCIOMax"
http://chgonzalez.blogspot.com
http://twitter.com/chgonzalez
  #5 (permalink)  
Antiguo 25/06/2009, 10:11
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Shell script que busque en diferentes directorios

Cita:
Iniciado por ociomax Ver Mensaje
Suponiendo que sean 100 directorios, creo que lo más fácil sería algo como:
Código:
for i in `seq 1 100`
do
   cp -v /directorio_$i/a/system.pdf /tmp/directorio_$i.pdf
done
O, si de entrada no se conoce la cantidad de directorios, puede usarse algo como lo siguiente (seguramente haya una forma más directa, pero creo que sirve)

Código:
num_dir=`ls -1d directorio_* | wc -l`
for i in `seq 1 $num_dir`
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:21.