Hola, comunidad, tengo un nuevo reto, este es algo largo, se trata de:
- extraer datos específicos de un archivo #eso sí lo hace
- escribirlos en uno nuevo #eso también lo hace
- enviar un parámetro para que lo busque y lo modifique, los datos o línea de datos #no lo hace
- y luego actualizarlos en el primer archivo #eso no lo hace
Bueno, de entrada supongamos que tengo mis datos en mi nuevo archivo en forma de lista y la manera de identificarlos es con la primera palabra. Ejemplo:
Using text Syntax Highlighting
server 21.21.21.21
port 1092
conexion tcp
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
Digamos que el usuario le envía un nuevo puerto a
port. Se tiene que actualizar con el nuevo valor, digamos que por el momento no es tan importante que lo actualice en el primer archivo, es por eso que hago un split() en la función
sustituye y quisiera que cuando encontrara el parámetro enviado por el usuario lo pudiera sustituir. Bueno, espero me puedan ayudar.
GRACIAS
Using perl Syntax Highlighting
$file = '/home/cliente/serverconfesp';
open (FILE
,">$file") or $msg = "File error";
$new='/home/cliente/nuevo';
open (NEW
,">$new") or $msg = "File error";
sub data_get
{ #función
while(<FILE>) { #while que recibe los parámetros de FILE
@linea = split; #se guarda en @linea el split
$sharp = "$linea[0]"; #se declara una var que guarda la primera palabra
if (($sharp!~/\
#/) && ($sharp==/^\n/)) #se compara que cuando sea diferente al símbolo # y al salto de línea
{
print NEW
"$_"; #lo imprima o lo escriba en este caso en el archivo NEW
}
}
}
sub sustituye
(a
, b
) { #creo una nueva función con dos parámetros
my $variable = $_[0
]; # y le digo que lo lea en este orden
my $valor = $_[1
];
print NEW
"$variable $valor "; #y que lo escriba en el archivo NEW
}
my $resivir = &data_get(); #coloco la función en una variable
while($resivir) { #hago que la reciba el while y la recorra
@linea = split; #que se guarde en @linea el split
$firt = "$linea[0]"; #la primera cadena se guarda en $firt
if ($firt eq "verb") # comparación de verb con la cadena $firt
{
&sustituye("verb","4"); #invoco a la función con los parámetros que quiero que sustituya
}
}
close (FILE
);
close (NEW
);Coloreado en 0.005 segundos, usando
GeSHi 1.0.8.4