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

Nombres de archivo separados por cierto Criterio

Estas en el tema de Nombres de archivo separados por cierto Criterio en el foro de Unix / Linux en Foros del Web. Estimados: Necesito crear un script que me vaya leyendo una carpeta y sus distintas subcarpetas. En ellas se encuentran cientos de archivos que se van ...
  #1 (permalink)  
Antiguo 13/01/2014, 14:02
Avatar de Chaudx  
Fecha de Ingreso: marzo-2002
Ubicación: Quilpué, Chilito lindo
Mensajes: 345
Antigüedad: 22 años, 8 meses
Puntos: 2
Nombres de archivo separados por cierto Criterio

Estimados:

Necesito crear un script que me vaya leyendo una carpeta y sus distintas subcarpetas.
En ellas se encuentran cientos de archivos que se van generando de manera automática por una aplicación cuyo nombre generalmente contiene letras y numeros todos los archivos empiezan igual (LOTE - FECHA). ej.

A00123 - 201312251345.DAT
A00123 - 201312261432.DAT
A00124 - 201312251345.DAT
B00235 - 201312242311.DAT...
... Z09934 - 201312312359.DAT, ETC.

Necesito crear un script que automáticamente me tome la primera parte del archivo (A00123 o A00124, ETC), según corresponda, cree una carpeta con ese nombre y en ella almacene todos los archivos que comiencen con ese nombre.

Desde ya, agradezco su ayuda.


saludos
__________________
Servicios computacionales
Linux registered User # 306587
Ubuntu user #14563
  #2 (permalink)  
Antiguo 14/01/2014, 11:21
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Nombres de archivo separados por cierto Criterio

Para encontrar todos los archivos que cumplan con el formato de nombre, usa find. Para procesar cada uno, crea un script que reciba uno o más nombres como parámetros.

El script que procesa los nombres, debe poder identificar la primera parte, "cut" puede fácilmente cortar una cadena. En general, el código debería ser algo como
Código BASH:
Ver original
  1. find /micarpeta -name "*.DAT" -exec procesar.sh {} \;
procesar.sh:
Código BASH:
Ver original
  1. ARCHIVO=$1
  2. DIR=$(echo $ARCHIVO | cut -d" " -f 1)
  3. mv $ARCHIVO $DIR/
  4. fi

(te toca ocuparte de resolver los problemas que surgen por los espacios en los nombres de archivo, no es difícil ;) )
  #3 (permalink)  
Antiguo 14/01/2014, 16:30
Avatar de Chaudx  
Fecha de Ingreso: marzo-2002
Ubicación: Quilpué, Chilito lindo
Mensajes: 345
Antigüedad: 22 años, 8 meses
Puntos: 2
Respuesta: Nombres de archivo separados por cierto Criterio

Excelente!!

Cut era el comando que me faltaba.

muchas gracias
__________________
Servicios computacionales
Linux registered User # 306587
Ubuntu user #14563

Etiquetas: ip, nombres
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 10:35.