Hola.
Estoy buscando la forma de generar un archivo a partir de otro:
El original tiene un formato como:
Using text Syntax Highlighting
[...]
agdfgdfg
weqwe
jtyiyui
Entrada 001 inicio
jdfhjaslfhj skdfjsdjflsjdf sdjfjsd lfjsd
eweiruo weuriuweo wioeruw
final
ydfos sdfsdf sfs
djasjd asdkjas jalsdj
Entrada 004 inicio
jdasjkdl ajksd
asd asda asdad
final
ajsdklja asjkda asjdaj
aksldkla aksdjka aksdka
[...]
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
Lo que quiero es hacer un nuevo archivo añadiendo todas líneas excepto las que están entre
Entrada ... final que no se correspondan con un código de entrada concreto que tengo en un
array.
Yo he hecho esto, que de momento me añade todas las líneas que no están dentro de un bloque
Entrada ... final.
Using perl Syntax Highlighting
my $datos="001:004:003_23:082_232";
my @lista_entradas=split(":",$datos);
my $linea;
my $linea2;
@archivo=leer_el_archivo;
@nuevo_archivo=();
foreach $linea(@archivo) {
unless ( $linea =~ /^Entrada/ .. $linea =~ /final$/ ) {
@nuevo_archivo=(@nuevo_archivo,$linea);
}
else {
foreach $linea2(@lista_entradas) {
$linea_entera_buscada="Entrada $linea2";
next if $linea =~ /^$linea_entera_buscada/ .. $linea =~ /final$/;
}
}
}
@archivo=@nuevo_archivo;
print @archivo;
Coloreado en 0.003 segundos, usando
GeSHi 1.0.8.4
Lo que he intentado, como se ve, es que la expresión regular de la línea 16 me acepte el contenido de una variable para ir buscando las posibles combinaciones, pero parece que así no se puede.
Supongo que hay alguna forma con más estilo para hacer esto, pero no se me ocurre.
Saludos y gracias.