› Foros › PC › Software libre
Wed Sep 9 14:00:01 2015 v6u2 p8737 211 -> 0 0/001 000.000.000.000:
55104(00000:00000):008 => 000.000.000.000:00080(08080):000 0ms 0ms(r)
0ms(O) 0ms(D) 0ms(L) 1:0ms(R) 0ms(U) 0ms(S) 0m
s(C) 0ms(N) 0ms(A) 0ms(s) 0ms(c) 100 -> 140
-40% 0 NEG_HIT/204 ---------------------- AMH-E----1---N------
n--------k1----M-AHSH-SH-O---L- | -/00000000 | - | - | - | LLLL | - |
- | 09361569421 | SESSION-646258C1-8 | - | Dalvik/1.6.0 (Linux; U;
Android 4.4.4; XT1039 Build/KXB21.14-L1.56) | Android generic#1 | Android-Web |
0:0 | - | - | 0000000000000000 | 237864823746823764 | - | GET http://www.google.com
cat archivo.txt | grep AMH
Esog Enaug escribió:Esa "H" va siempre como "AMH-"?
Si es asi un cat para leer el archivo y un grep para sacar la linea que contenga esa cadena,algo así:cat archivo.txt | grep AMH
cat prueba.txt | cut -d "|" -f 1 | cut -d "-" -f 26 | grep -o "H"
#!/usr/bin/perl -w
use strict;
use warnings;
# Variables de configuracion
#####################################################
my $PWD='/home/AzagraMac/Developer/proyects/';
my $PATH_MASTER_LIST= $PWD . 'MasterList.csv';
#my $PATH_MASTER_NEWLIST= $PWD . 'MasterNewList.csv';
my $PATH_MASTER_LIST_LOG= $PWD . 'MasterListLog.log';
my $PATH_LOG= $PWD . 'salida.log';
my $PATH_SYSLOG= $PWD . 'syslog.log';
#####################################################
my $line;
my @MasterList;
my @splitline;
my $cadena_aux;
my $url_search;
my $i;
my $timelog;
my $countlines;
#my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst);
my $aux;
# Abrimos el fichero de la MasterList
open(FMASTER, "<", $PATH_MASTER_LIST) or die "No se puede abrir la Master List $!";
# Cargamos la MasterList en un array
foreach $line (<FMASTER>) {
@splitline = split(/,/, $line);
$aux = $splitline[0];
chop($aux);
push(@MasterList, $aux);
}
close (FMASTER);
# print $MasterList[4] . "\n";
open(SYSLOG, ">>", $PATH_SYSLOG ) or die "No se puede abrir el fichero del sistema de log $!";
&WriteLog("Iniciando ejecucion");
# Abrimos para añadir al fichero de log de la MasterList
open(MLOG, ">>", $PATH_MASTER_LIST_LOG ) or die "No se puede abrir el log de la MasterList $!";
# Abrimos el fichero de las trazas
open(FLOG, "<", $PATH_LOG ) or die "No se puede abrir el log de las trazas $!";
&WriteLog("Fichero Log abierto");
$countlines=0;
# Buscamos el Flag H en las trazas
foreach $line (<FLOG>){
@splitline = split(/\|/, $line);
if (substr($splitline[0],-51,1) eq 'H'){
$url_search = $splitline[-1];
# Comprueba si existe un GET
if ($url_search =~ m/^.* GET .*/) {
# Elimina los caracteres finales (saltos de linea, retorno de carro...)
chop ($url_search);
$i=0;
foreach $cadena_aux ( @MasterList ){
if ($url_search =~ /$cadena_aux/) {
$timelog = substr($splitline[0], 0,24);
print MLOG "$cadena_aux, $timelog, $url_search\n";
# Elimina elementos de la array en mitad de la array
splice @MasterList, $i, 1;
$countlines++;
last;
}
$i++;
}
}
}
}
&WriteLog("Cerrar fichero $PATH_LOG, Lineas borradas: $countlines");
if ($countlines > 0){
&WriteMasterList($PATH_MASTER_LIST);
}
close (FLOG);
close (MLOG);
close (SYSLOG);
# Escribe la MasterList en memoria en el disco,
# y machaca el fichero original, siempre que sea $PATH_MASTER_LIST
sub WriteMasterList {
my $result = 0;
my $values;
if (open(MNLOG, ">", $_[0])){
foreach $values ( @MasterList ){
print MNLOG "$values\n";
}
$result = 1;
close (MNLOG);
}
return $result;
}
sub WriteLog {
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();
$year += 1900;
$mon ++;
print SYSLOG "$mday-$mon-$year $hour:$min:$sec - $_[0]\n";
}