IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Extraire un nombre d'un résultat d'une commande


Sujet :

Shell et commandes GNU

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 12
    Par défaut Extraire un nombre d'un résultat d'une commande
    Bonjour ,

    Je cherche à savoir comment faire pour récupérer un nombre entier qui se trouve dans le résultat de ma commande ,

    Exemple je récupère le résultat suivant :
    enterprises.3808.1.1.1.2.2.3.0 = Gauge32: 25

    Je cherche a récupérer cette dernière valeurs , j'ai essayé avec egrep -o '[[:digit:]]$' résultat.txt malheureusement je récupère seulement le 5 et non pas le 25

    Si quelqu'un avait une idée de la solution

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 138
    Par défaut
    As-tu essayé avec l'expression [[:digit:]]*$ ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 12
    Par défaut
    Effectivement il manquait un argument dans ma commande

    Je récupère bien la valeurs 25 comme souhaité , merci beaucoup pour ta réponse

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 12
    Par défaut
    J'ai pu récupérer toutes les valeurs de mes différents OID cependant l'un d’entre eux me renvoi une valeurs avec des points , comment puis-je faire pour récupérer cette valeurs ?

    Retour de la requête SNMP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    info_brut=enterprises.3808.1.1.1.2.2.4.0 = Timeticks: (90000) 0:15:00.00
    La valeurs qui m’intéresse est 0:15:00.0 qui correspond à la duré de la batterie .

    Si quelqu'un pense avoir une piste ?

  5. #5
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 414
    Par défaut
    Bonjour,

    A priori, ça semble être le dernier "mot" de ta ligne:

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 12
    Par défaut
    J'ai déjà essayer cette solution auparavant mais je n'arrivais a récupérer ma valeurs seulement en passant par un fichier.txt dans lequel je stockais ma valeur

    Pour récupérer les valeurs des autres OID j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    info_brut=$(snmpwalk -Os -c $1 -v $2 $3 .1.3.6.1.4.1.3808.1.1.1.2.2.3.0)
    echo "${info_brut##* }"
    Il me retourne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    info_brut=enterprises.3808.1.1.1.2.2.4.0 = Timeticks: (84000) 0:14:00.00
    Peut être faut-il rajouter un argument lorsque je fais echo pour récupérer une valeur avec des points et double points ?

  7. #7
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 414
    Par défaut
    Pour que l'on puisse t'aider correctement, donne plus de contexte:

    - Le besoin global car selon le cas, tu as soit un nombre, soit un temps, soit autre chose...
    - Des exemples de ligne pour chaque cas avant traitement et après traitement.

    Le but étant de trouver un schéma global qui puissent traiter tous les cas.

  8. #8
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 300
    Par défaut
    Bonjour

    cette valeurs
    ma valeurs
    C'est une manie de mettre l'article au singulier et le nom commun au pluriel ?

    Il me retourne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    info_brut=enterprises.3808.1.1.1.2.2.4.0 = Timeticks: (84000) 0:14:00.00
    Je n'aime pas que tu présentes les choses comme ça.
    2 choses l'une :
    • Soit ton "=" est l'opérateur d'affectation, et il faut que la chaîne qui suit soit protégée. (par des double quotes)
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      info_brut="enterprises.3808.1.1.1.2.2.4.0 = Timeticks: (84000) 0:14:00.00"
      Car, en shell, on peut affecter une variable, le temps d'une seule commande :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      $ IFS=x read a b c <<<"totoxtataxtiti"
      $ echo $b
      tata
      $ echo $IFS
       
      $
      (Note que IFS n'est pas égal à 'x').
    • Soit c'est pour nous indiquer la valeur, et on ne fait pas comme cela en shell.
      Il serait préférable que tu copies-colles ta console.



    Je ne comprends pas vraiment ce que tu n'arrives pas à faire. Ici (bash 4.3), cela marche très bien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ info_brut="enterprises.3808.1.1.1.2.2.4.0 = Timeticks: (84000) 0:14:00.00"
    $ echo ${info_brut##* }
    0:14:00.00

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/11/2009, 02h51
  2. Trier le résultat d'une commande dir?
    Par Johns dans le forum Langage
    Réponses: 6
    Dernier message: 13/03/2006, 18h24
  3. Récupération du résultat d'une commande shell
    Par klu dans le forum Langage
    Réponses: 8
    Dernier message: 17/02/2006, 00h34
  4. Réponses: 2
    Dernier message: 02/01/2006, 11h39
  5. Ecrire le résultat d'une commande dans un fichier de l' OS
    Par Labienus dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 26/02/2004, 12h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo