Bonjour je veux recuperer les valeurs 0.9 et 0.3 dans cette phrase
Gigabit Server Adapter:UP (0.9KBps/0.3KBps):1 UP: OK
avec \d
mais l'expression ((\d+)/(\d+)) / ne marche pas
est ce que quelqu'un a une idee
Bonjour je veux recuperer les valeurs 0.9 et 0.3 dans cette phrase
Gigabit Server Adapter:UP (0.9KBps/0.3KBps):1 UP: OK
avec \d
mais l'expression ((\d+)/(\d+)) / ne marche pas
est ce que quelqu'un a une idee
salut,
une des solutions possibles:
ou bien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $var = "Gigabit Server Adapter:UP (0.9KBps/0.3KBps):1 UP: OK"; $var =~ /(\d+\.\d+).*\/(\d+\.\d+)/; print $1." ".$2;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $var = "Gigabit Server Adapter:UP (0.9KBps/0.3KBps):1 UP: OK"; $var =~ /\((\d+\.\d+)\w+\/(\d+\.\d+)\w+\)/; print $1." ".$2;
je me suis base sur ta reponse et j'ai fait
output :Gigabit0/3 Server Adapter:UP (0.9KBps/0.3KBps):1 UP: OK
output :Gigabit0/3.*?/(\d+\.\d+).*\/(\d+\.\d+)/
mais ça ne marche toujours pas
Bonjour,
Peux-tu coller ton code entier, l'expression régulière données par osnet est correcte chez moi aussi (parl 5.1) ?
Sinon si tu as des lignes qui sont du type:
Gigabit0/3 Server Adapter:UP (0.9KBps/0.3KBps):1 UP: OK,
il faut effectivement étendre ton code aux parenthèse de début et de fin dans ton expression initiale, et les échapper ave un \ aussi:
[CODE]
$var = "Gigabit0/3 Server Adapter:UP (0.9KBps/0.3KBps):1 UP: OK";
$var =~ /\((\d+\.\d+)KBps\/(\d+\.\d+)KBps\)/;
print $1." ".$2;
Bon en fait
je ne peux pas utiliser $var ici il sagit d'un plugin
voici mon code
je veux juste recuperer les valeurs 0.9 et 0.3
#!/usr/bin/perl
# File: $Id: testentry.pl,v 1.4 2005/10/08 05:55:08 sauber Stab $
# Author: (c) Soren Dossing, 2005
# License: OSI Artistic License
# http://www.opensource.org/licenses/artistic-license.php
# Modify this script to test map entries before inserting into real
# map file. Run the script and check if the output is as expected.
use strict;
no strict "subs";
use Data:umper;
my @s;
# Insert servicesdescr, output and perfdata here as it appears in log file.
#
$_ = <<DATA;
servicedescr:ping
output :Gigabit0/3 Server Adapter:UP (0.9KBps/0.3KBps):1 UP: ok
perfdata:
DATA
eval {
# Insert here a map entry to parse the nagios plugin data above.
#
output :Gigabit0/3.*?/(\d+\.\d+).*\/(\d+\.\d+)/
and push @s, [ traffic,
[ in , GAUGE, $1 ],
[ out, GAUGE, $2 ] ];
};
print Data:umper->Dump([\@s], [qw(*s)]);
Essaye juste de remplacer:
Par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 # Insert here a map entry to parse the nagios plugin data above. # output :Gigabit0/3.*?/(\d+\.\d+).*\/(\d+\.\d+)/
ou juste
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 # Insert here a map entry to parse the nagios plugin data above. # output : /\((\d+\.\d+)KBps\/(\d+\.\d+)KBps\)/si les délimiteurs "/" servant à délimiter l'expression régulière ne sont pas demandés par ton plugin.
Code : Sélectionner tout - Visualiser dans une fenêtre à part \((\d+\.\d+)KBps\/(\d+\.\d+)KBps\)
Partager