Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Script para sustituir caracteres en 1 fichero

17 views
Skip to first unread message

Rodrigo Garcia

unread,
Sep 19, 2017, 7:32:29 AM9/19/17
to
Hola,

Tengo un script realizado en bash que me gustaría portar a un módulo de access para poder llamarlo desde una macro de Access. El script lo que hace es:

1.- Sustituye en la primera línea de un fichero el caracter punto y coma ";" por el caracter de la negación "¬".
2.- Sustituye los caracteres ");=" por los caracteres ")¬=" (básicamente vuelve a sustituir los ; por los ¬ cuando encuentra el ; entre determinados caracteres)
3.- Elimina las cadenas incluidas entre las siguientes comillas simples'T("', '&T("'y '")'
4.- Elimina las horas, minutos y segundos de los campos de fecha.

Esto en un bash script lo con esta línea:

sed '1 s/;/¬/g; s/);=/)¬=/g; s/=T("\|")\|&T("\| [0-2][0-9]:[0-5][0-9]:[0-5][0-9]//g' FicheroOrigen.txt > FicheroDestino.txt

Donde los pasos que he descrito antes se corresponden con las siguientes partes del comando:

1.- Comando: 1 s/;/¬/g
2.- Comando: s/);=/)¬=/g
3 y 4.- Comando s/=T("\|")\|&T("\| [0-2][0-9]:[0-5][0-9]:[0-5][0-9]//g

El fichero tiene un tamaño de 3 Gb y creciendo, como referencia, ahora tardo unos 15 minutos en procesar el fichero entero desde un terminal de Linux simulado con Cygwin.

¿Alguien sabría cómo procesar este fichero con VBA y que no se muera en el intento?

La función replace sustituye caracteres, pero no sé muy bien cómo leer/escribir un fichero o como realizar la sustitución de caracteres en una sola línea y no en el fichero entero.

Un saludo
0 new messages