Extraire chaine
Bonjour,
en fait je voulais extraire les adresse mac dont leur state et free en passant par script Perl
voila un exemple de fichier
merci d'avance de votre aide
lease 192.168.100.10 {
starts 3 2012/03/28 08:01:45;
ends 3 2012/03/28 08:11:45;
tstp 3 2012/03/28 08:11:45;
cltt 3 2012/03/28 08:01:45;
binding state free;
hardware ethernet 00:20:d2:25:54:23;
}
lease 192.168.100.2 {
starts 1 2012/04/02 09:54:36;
ends 1 2012/04/02 09:55:48;
tstp 1 2012/04/02 09:55:48;
cltt 1 2012/04/02 09:54:36;
binding state free;
hardware ethernet 00:14:22:c3:38:53;
uid "\001\000\024\"\3038S";
}
lease 192.168.100.14 {
starts 3 2012/04/04 14:35:26;
ends 3 2012/04/04 14:36:38;
cltt 3 2012/04/04 14:35:26;
binding state active;
next binding state free;
hardware ethernet 00:20:d2:2b:f6:1a;
}
lease 192.168.100.14 {
starts 3 2012/04/04 14:36:02;
ends 3 2012/04/04 14:37:14;
cltt 3 2012/04/04 14:36:02;
binding state active;
next binding state free;
hardware ethernet 00:20:d2:2b:f6:1a;
}
lease 192.168.100.14 {
starts 3 2012/04/04 14:36:38;
ends 3 2012/04/04 14:37:50;
cltt 3 2012/04/04 14:36:38;
binding state active;
next binding state free;
hardware ethernet 00:20:d2:2b:f6:1a;
}
en fait je voulais extraire les adresse mac dont leur state et free en passant par script Perl
voila un exemple de fichier
merci d'avance de votre aide
lease 192.168.100.10 {
starts 3 2012/03/28 08:01:45;
ends 3 2012/03/28 08:11:45;
tstp 3 2012/03/28 08:11:45;
cltt 3 2012/03/28 08:01:45;
binding state free;
hardware ethernet 00:20:d2:25:54:23;
}
lease 192.168.100.2 {
starts 1 2012/04/02 09:54:36;
ends 1 2012/04/02 09:55:48;
tstp 1 2012/04/02 09:55:48;
cltt 1 2012/04/02 09:54:36;
binding state free;
hardware ethernet 00:14:22:c3:38:53;
uid "\001\000\024\"\3038S";
}
lease 192.168.100.14 {
starts 3 2012/04/04 14:35:26;
ends 3 2012/04/04 14:36:38;
cltt 3 2012/04/04 14:35:26;
binding state active;
next binding state free;
hardware ethernet 00:20:d2:2b:f6:1a;
}
lease 192.168.100.14 {
starts 3 2012/04/04 14:36:02;
ends 3 2012/04/04 14:37:14;
cltt 3 2012/04/04 14:36:02;
binding state active;
next binding state free;
hardware ethernet 00:20:d2:2b:f6:1a;
}
lease 192.168.100.14 {
starts 3 2012/04/04 14:36:38;
ends 3 2012/04/04 14:37:50;
cltt 3 2012/04/04 14:36:38;
binding state active;
next binding state free;
hardware ethernet 00:20:d2:2b:f6:1a;
}
2 réponses
-
La réponse est déjà donnée dans ce fil de discussion (ou presque) :
https://forums.commentcamarche.net/forum/affich-24896124-exraire-les-donnes-d-un-fichier#3
Si prend 2 minutes pour comprendre le programme tu verras que c'est trivial.
Bonne chance -
$ perl -ne 'if (/^binding state free/){$x=1} ; if (/ethernet/ && $x eq 1){print ; $x=0} ' < fichier hardware ethernet 00:20:d2:25:54:23; hardware ethernet 00:14:22:c3:38:53; $