script awk

Rodrigo Fuentealba darkprox en gmail.com
Lun Ago 6 14:20:10 CLT 2007


El 5/08/07, Horst H. von Brand <vonbrand en inf.utfsm.cl> escribió:
> Wilson Acha <acha.wilson en gmail.com> wrote:
> > Hola, Listeros, en mi oficina tengo el siguiente escenario, en un
> > directorio tengo varios archivos de texto que se va generando
> > automaticamente con registros de usuarios (uno por linea), un archivo
> > por cada dia, pero actualmente precisamos eliminar las filas de todos
> > los archivos que cumplan cierto patron o que contengan un dato
> > especifico, por decir, borrar todas las filas de todos los archivos
> > del directorio que contengan el codigo de cierto usuario, tengo
> > entendido que esto se puede hacer con AWK, lastimosamente nunca lo he
> > manejado, es por eso que recrro a uds para que me puedan orientar en
> > el mismo.
>
> Simple: awk(1). O puedes cachurear Python <http://www.python.org>, Perl
> <http://www.perl.org> o Ruby <http://www.ruby-lang.org>.
>
> > Espero sus comentarios
>
> [Supongo que ahora me taparan con comentarios mordaces y quejas...]

¿Por qué? No veo diferencia entre hacer algo con awk y hacerlo con
Python, Perl, Ruby ( e inclusive algunas cosas con el CLI de PHP, que
trae hasta control de procesos cuando se compila con --with-pcntl ).

En PHP (que es lo que más acostumbro a manejar, me demoraría un siglo
en cocinar algo así en Python o Perl por falta de práctica), eso lo
puedes hacer con las siguientes instrucciones:

explode(); te convierte un string en un array;
preg_match(); te permite saber si un patrón concuerda con la expresión regular;
str_replace(); te permite reemplazar ese campo.

Y el resto es trivia.

(Doc, ¿por qué no hace un ejemplo en scheme de cómo parsear un archivo?)

-- 
Rodrigo Fuentealba Cartes
Desarrollador de Sistemas - Consultor UNIX - Database Administrator



Más información sobre la lista de distribución Linux