Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Extraire certaines informations depuis un fichier

5 réponses
Avatar
maxx
Salut,

Je bloque sur l'ecriture d'un script qui me permettrai de faire des
statistiques selon des informations presentes dans un fichier. Dans le
fichier et pour chaque MacAdress, je voudrai extraire des infos comme
IP adress etc...
Seulement, je recupere les mac adress mais pas avec les bonnes
informations associ=E9es :-(
Le fichier a cette forme :
-----
MAC address:,00:0D:54:A5:C2:B9
IP adress:,(N/A)
Assigned name:,(N/A)
AP name:,(N/A)
WEP:,Enabled
First Seen,03-02-05 14:11:52
Last Update,03-02-05 14:35:32
Signal:,-91 dBm 5%
(=2E..)
,48M byte,0,0,0,0
,54M byte,0,0,0,0

MAC address:,00:13:D4:D1:F9:3A
IP adress:,192.168.1.1
Assigned name:,(N/A)
AP name:,(N/A)
WEP:,Disabled
(=2E..)
-----

Si quelqu'un a une id=E9e, ce serait cool!

Merci

5 réponses

Avatar
JacK
maxx wrote:
Salut,

Je bloque sur l'ecriture d'un script qui me permettrai de faire des
statistiques selon des informations presentes dans un fichier. Dans le
fichier et pour chaque MacAdress, je voudrai extraire des infos comme
IP adress etc...
Seulement, je recupere les mac adress mais pas avec les bonnes
informations associées :-(
Le fichier a cette forme :
-----
MAC address:,00:0D:54:A5:C2:B9
IP adress:,(N/A)
Assigned name:,(N/A)
AP name:,(N/A)
WEP:,Enabled
First Seen,03-02-05 14:11:52
Last Update,03-02-05 14:35:32
Signal:,-91 dBm 5%
(...)
,48M byte,0,0,0,0
,54M byte,0,0,0,0

MAC address:,00:13:D4:D1:F9:3A
IP adress:,192.168.1.1
Assigned name:,(N/A)
AP name:,(N/A)
WEP:,Disabled
(...)
-----

Si quelqu'un a une idée, ce serait cool!

Merci

Les lignes Mac et Ip etatnt consecutives,

une expression reguliere devrait repondre a votre besoin
(en jouant du s et des captures).

Avatar
maxx
Re,

Des captures? Je ne sais pas ce que sait... :-(

En procedant par regex, comment je peux faire pour que les informations
consecutives a chaque "mac adress" sont à extraire? Et non pas,
continuer à extraire d'autre info d'appartenant pas à sa section?
Avatar
JacK
maxx wrote:
Re,

Des captures? Je ne sais pas ce que sait... :-(

En procedant par regex, comment je peux faire pour que les informations
consecutives a chaque "mac adress" sont à extraire? Et non pas,
continuer à extraire d'autre info d'appartenant pas à sa section?


MAC address:,00:0D:54:A5:C2:B9


avec des parentheses simples ex: MAC adress:,(.*) vous effectuez une
memorisation
que vous recupererez dans $1 etc...
dans $1 vous devriez obtenir 00...B9

Avatar
F. Senault

Re,

Des captures? Je ne sais pas ce que sait... :-(

En procedant par regex, comment je peux faire pour que les informations
consecutives a chaque "mac adress" sont à extraire? Et non pas,
continuer à extraire d'autre info d'appartenant pas à sa section?


Je ferais quelque chose du genre :

my %all=();
my $c=1;
while($c) {
$_=<>;
$c=0 unless($_);
chomp;
if(/^([A-Za-z0-9 :-]),(.*)$/) { # Cle,Valeur
$all{$1} = $2;
} elsif(/^,(.*)/) { # Valeur seule ?
# ?
} elsif(/^$/) { # Ligne vide
print "MAC: ".$all{'MAC address:'}."n";
print "IP: ".$all{'IP address:'}."n";
# etc...
%all=();
print "n";
}
}

Qui donne avec ton fichier d'entrée :

MAC: 00:0D:54:A5:C2:B9
IP: (N/A)

MAC: 00:13:D4:D1:F9:3A
IP: 192.168.1.1

Ca manque peut-être d'élégance, mais ça fait le boulot demandé... (Et
même plus.) :)

Fred
--
No one's gonna bother me anymore No one's gonna mess with my head no
more I can't understand what all the fightin's for But it's so nice
here down off the shore I whish you could see this 'Cause there's
nothing to see (Guns n' Roses, Coma)

Avatar
ZigZag15551
Salut,

Je bloque sur l'ecriture d'un script qui me permettrai de faire des
statistiques selon des informations presentes dans un fichier. Dans le
fichier et pour chaque MacAdress, je voudrai extraire des infos comme
IP adress etc...
Seulement, je recupere les mac adress mais pas avec les bonnes
informations associées :-(
Le fichier a cette forme :
-----
MAC address:,00:0D:54:A5:C2:B9
IP adress:,(N/A)
Assigned name:,(N/A)
AP name:,(N/A)
WEP:,Enabled
First Seen,03-02-05 14:11:52
Last Update,03-02-05 14:35:32
Signal:,-91 dBm 5%
(...)
,48M byte,0,0,0,0
,54M byte,0,0,0,0

MAC address:,00:13:D4:D1:F9:3A
IP adress:,192.168.1.1
Assigned name:,(N/A)
AP name:,(N/A)
WEP:,Disabled
(...)
-----

Si quelqu'un a une idée, ce serait cool!

Merci


Quelque chose du genre pourrait faire l'affaire !

#!/usr/bin/perl
use strict;

my $file;
open (TXTFILE, "path/to/file.txt");
while(<TXTFILE>){
$file .= $_;
}
close(TXTFILE);

my $output;
my @tab = split/MAC address:,/,$file;
splice(@tab,0,1);
foreach(@tab){
my ($MacAdd,$IPAdd,$WEP);
my $tab = 'MAC address:,'.$_;
if($tab =~ /MAC address:,(.+?)n/){
$MacAdd = $1;
}
if($tab =~ /IP adress:,(.+?)n/){
$IPAdd = $1;
}
if($tab =~ /WEP:,(.+?)n/){
$WEP = $1;
}
$output .= "$MacAdd,$IPAdd,$WEPn";
}

print $output;
exit;

--
------------------------------------
ZigZag15551
------------------------------------