#!/usr/bin/perl -w
use strict;

# nopass.pl v2.0 -- (c) Guillem Cantallops Ramis, 2002. GNU GPL.
# (Por si a alguien le importa O:-)
#
# En realidad no es _tan_ complicado como parece. Solo dos cosas:
# 
#   1.- En $f tenemos la expresión regular de un campo (field ;-)
#
#       Considero dos posibles formas para el campo:
#
#           a) Un tocho de lo que sea _menos_ comillas simples y comas.
#              Es útil para NULL, números, etc.
#			b) Cualquier cosa entre _un_par_ de comillas simples.
#              Creo que sirve para todo lo demás.
#
#       Deberiamos usar $f en las regexps, rodeados de los
#       correspondientes paréntesis "escapados" y comas del INSERT.
#
#   2.- Hay que saber como se numeran los pares de paréntesis de las regexps.
#       Básicamente, cuentas los paréntesis izquierdos (los de apertura)
#       empezando por la izquierda. El numerito _no_ está relacionado
#       directamente con las imbricaciones (seria dificil de contar, habria
#       que hacer árboles y demás ;-)
#
#       Por cierto, $f _ya_lleva_paréntesis_.
#
#       $l no es más que un contador de lineas que de paso sirve para
#       que todos los campos sean diferentes.
#
# Tenia una versión más legible, pero tardaba minutos y esta tarda segundos.
# Además es diez veces más corta. Una pena que los comentarios lo estropeen ;-)

my $f = '([^\',]+|\'.*\')';
my $l = 0;
while (<>) {
	$l++;
	s/^(INSERT INTO bul_tbl_autores VALUES \($f,$f,$f,$f,$f,$f,)$f(,$f,$f,)$f(,$f,$f\);)$/$1'hola$l\@que.tal'$9'notelodigo$l'$13/;
	s/^(INSERT INTO bul_tbl_comentarios VALUES \($f,$f,$f,$f,$f,$f,$f,)$f(,$f,$f,$f,$f\);)$/$1'IP-$l.$l.$l.$l-IP'$10/;
	print;
}

