Forum Clubic

Couper un résultat en invite de commande

Bonjour,

J’ai une commande (en fait c’est un check de Nagios) qui me renvoie un résultat sous cette forme

$ ./check_dns -H dns.entreprise.com
DNS OK: 0,004 seconds response time. dns.entreprise.com returns 96.10.3.24,96.10.3.20|time=0,003836s;;;0,000000
$

Et moi, j’aurais besoin de couper le résultat pour que j’obtienne

$ ./check_dns -H dns.entreprise.com | {commande pour découper le résultat}
0,003836
$

Je pense que c’est faisable à l’aide de la commande sed, mais je galère pour trouver son fonctionnement :frowning:
Quelqu’un saurait-il me guider ? :slight_smile:

Merci beaucoup

cut ?

la commande cut ? comment faire ?
j’ai reussi à supprimer tout le début avec awk, je me retrouve avec un résultat de ce type

0,003836s;;;0,000000

Bon, pour le moment, j’ai réussi en bidouillant

$ ./check_dns -H dns.entreprise.com  | awk 'BEGIN{FS="="} {print $2}' | cut -c-8 | sed s/,/./
0.003836
$

Ca fonctionne, mais c’est pas un peu lourd comme méthode ?

Disons que la sortie de ton script est assez difficile à exploiter. un serie de données séparées par un espace ou un tab aurait dejà été plus simple.- quitte a mettre sur deux lignes, une ligne “tete de tableau” et une ligne donnees de sorties. Moi, j’aurai fait comme ça.
Edité le 05/06/2008 à 16:21


#/usr/bin/python
import sys

for string in sys.stdin:
        a, b = string.split("|")
        c,d  = b.split("s")
        a, resultat =  c.split("=")
        print resultat


plus rapide :

#/usr/bin/python
import sys


for string in sys.stdin:
        debut = string.find("=")
        fin =  string.rfind("s")
        print string[debut+1:fin]

Edité le 05/06/2008 à 16:41


(Oui je sais, python par rapport à awk, on change de catégorie ... )

:super: joliiii

Malheureusement, la sortie du script… je ne peux la modifier, c’est un fichier compilé :frowning:

Merci :slight_smile: