renombrar un archivo con una parte de su contenido

Iniciado por Pipo0077, 17 Febrero 2010, 05:36 AM

0 Miembros y 1 Visitante están viendo este tema.

Pipo0077

Buenas a todos,

Queria ver si me pueden ayudar con este problema que tengo.

Diariamente extraigo numerosos reportes de un sistema con informacion del dia anterior y los guardo en archivos txt en una carpeta.
El asunto es que encontre la forma de que los reportes del dia de ayer se bajen automaticamente, pero el sistema los guarda siempre con el mismo nombre (entonces por ej cuando el sistema graba los datos de ayer, sobreescribe los de antes de ayer en el mismo txt).

Lo que necesito es un batch que al correrlo renombre un txt con parte de su contenido (la fecha) y de esta forma todos los dias primero se bajaria el reporte con el mismo nombre (ej "Direcciones AYER".txt) y despues al correr el batch se actualizaria el nombre inluyendo la fecha en cuestion (fecha que viene en el cuerpo del reporte) quedando por ej "Direcciones 16-Feb-2010.txt".

Ej del reporte en txt

Report Date: 16-Feb-2010

Nombre   Apellido   Direccion   COD1   COD2
aaaaaa   bbbbb   cccccc   55555   66666
aaaaaa   bbbbb   cccccc   55555   66666
aaaaaa   bbbbb   cccccc   55555   66666
aaaaaa   bbbbb   cccccc   55555   66666
aaaaaa   bbbbb   cccccc   55555   66666

En conclusion, el reporte txt de arriba originalmente se llama "Direcciones AYER.txt" y deberia quedar "Direcciones 16-Feb-2010" usando la fecha que viene en la primera linea del file.

Se que quizas es un poco complicado de comprender y no estoy seguro de haberlo explicado bien como para que alguien no familiarizado con el asunto lo comprenda, por lo que ante cualquier consulta no duden en avisarme

De antemano muchas gracias!!!!

PD: Espero tambie poder ser utilen algun momento para el foro como el ha sido para mi hasta ahora...

Edito ------->
Recuerda leer las reglas, no hagas post con titulos en mayusculas, no hay necesidad, no somos ciegos.

maschulito

HOla, me gustaría saber si has conseguido lo que pretendías, porque tengo el mismo problema. A ver si puedes ayudarme. Saludos.

batch_party

Hola chicos, con este sencillo script se puede hacer lo que queréis. Lo he desglosado, aunque se puede hacer en una sola línea para que se entienda que hace cada cosa.


#!/bin/bash

echo Guardamos la primera línea en una variable. Para dudas: man head
primera_linea=$(head -n1 "Direcciones AYER.txt")

echo Ahora tomamos la subcadena de la primera línea (a partir del carácter 12)
nuevo_nombre=Direcciones ${primera_linea:12}.txt

echo Renombramos a $nuevo_nombre
mv "Direcciones AYER.txt" $nuevo_nombre

echo Ya está!


No he comprobado el script ya que lo he escrito con bastante prisa, pero creo que debería funcionar. Espero que no haya ningún error de sintaxis.