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;
}

2 réponses

  1. Contributeur
    $ 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;
    $ 
    0
    1. Contributeur
      un vrai feulleton ...
      0
    2. Contributeur
      Où il vaut mieux ne pas rater un épisode ;-))
      0
    3. Modérateur
      J'ai décroché personnellement il me faudra un résumé des épisodes précédents :-)
      0
    4. Contributeur
      Faut demander à Jeff de mettre en place un CCM replay ;-))
      0