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 :

Champs particuliers du résultat d'une commande


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2012
    Messages : 324
    Par défaut Champs particuliers du résultat d'une commande
    Bonjour,
    Jes suis entrain de faire de l'administration de flux avec l'outil NFDump et je voudrai arranger un peu le résultat affiché.
    Lorsque je lance une première commande, le résultat retourné est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Date flow start          Duration Proto      Src IP Addr:Port           Dst IP Addr:Port   Out Pkt   In Pkt Out Byte  In Byte Flows
    2013-06-07 17:41:20.010  1769.978     0         10.0.5.6:0     <->          0.0.0.0:0            0     1300        0   391700    10
    je voudrai récupérer dans l'ordre le conrenu des champs src IP, out pkt, in pkt, out byte, in byte sous la forme suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    src IP:out pkt:in pkt:out byte:in byte
    une deuxième commande me donne le résultat suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Date flow start          Duration       Src IP Addr   Packets    Bytes      bps    Bpp Flows
    2013-06-07 17:41:20.010  1769.978          10.0.5.6      1300   391700     1770    301    10
    je voudrai récupérer uniquement le champs bps et l'ajouter au résultat précedent.

    Comment je pourrais réaliser ceci de manière la plus rapide possible car les lignes retourné peuvent être très grand en termes de nombre.

    Merci

  2. #2
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2012
    Messages : 324
    Par défaut
    En fait j'ai réussi à arranger un peu plus la sortie et à récupérer les champs que je veux suivant la forme suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    2013-06-07 17:41:20.010  65070 ->      1300        0   391700        0    10  1769.978     1770
    comment je pourrais faire pour que le résultat devienne de cette forme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    65070:1300:0:391700:0:10:1769.978:1770
    merci

  3. #3
    Membre actif
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Décembre 2012
    Messages : 43
    Par défaut
    avec un appel à awk ?

  4. #4
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2012
    Messages : 324
    Par défaut
    Bon j'ai trouvé la solution je vais la poster pour ceux qui en auront besoins:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    commande |  awk 'BEGIN{OFS=":"}{print $3,$5,$6,$7,$8,$9,$10,$11 }'
    Bonne journée

  5. #5
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2012
    Messages : 324
    Par défaut
    Bonjour,
    la commande awk m'a permi de de former le résultat affiché suivant mes besoins.
    Parmi les champs affichés, il y'a des champs tels que le nombre d'octets, le débit... qui, lorsqu'ils atteignent des grandes valeurs, une unité de mesure apparait dans la ligne affiché ce qui rend la commande awk (avec la syntaxe que j'ai utilisé inutilisable).
    Je donné un exemple,
    le champ $7 donne le nombre d'octets reçu. quand j'ai testé la commande au début ça marchait parfaitement. Mais quand ce nombre a augmenté l'unité M (méga) est apparu et est devenu le champ $8, le champs 8 devenu le champ 9 ect...
    Je voudrais modifier mon script de manière a concaténer deux champs x et y si y est une lettre non pas un réel.
    Comment je pourrais faire?
    merci

  6. #6
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 356
    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 356
    Par défaut
    Si on regarde ceci:
    Citation Envoyé par supcomingenieur Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    2013-06-07 17:41:20.010  65070 ->      1300        0   391700        0    10  1769.978     1770
    Tes champs semblent tabuler (a part peut-etre '->' ), tu peux donc essayer en forçant comme séparateur la tabulation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    commande |  awk -F'\t' 'BEGIN{OFS=":"}{print $3,$5,$6,$7,$8,$9,$10,$11 }'
    Les champs ne seront plus les mêmes mais une fois identifié, ils ne changeront plus. Ensuite, il faudra peut-etre rajouter un petit coups de sed pour virer le '->'

  7. #7
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2012
    Messages : 324
    Par défaut
    j'avoue ne pas avoir compris très bien ce que tu veux dire. Mais je vais essayé d'arranger le code un peu plus.
    Merci

  8. #8
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2012
    Messages : 324
    Par défaut
    Je n'arrive pas à trouver la solution.
    Est ce que tu pourrais m'aider S'il te plait.
    merci

  9. #9
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 356
    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 356
    Par défaut
    Pour ça, il me faudrait des informations. Peux tu me donner le résultat de ta commande qui affiche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    2013-06-07 17:41:20.010  65070 ->      1300        0   391700        0    10  1769.978     1770
    couplé à od -c
    donc:
    Si possible, un cas sans le M et un cas avec le M ?

Discussions similaires

  1. Récupérer le résultat d'une commande shell
    Par espadon1 dans le forum Langage
    Réponses: 4
    Dernier message: 02/06/2006, 10h01
  2. Trier le résultat d'une commande dir?
    Par Johns dans le forum Langage
    Réponses: 6
    Dernier message: 13/03/2006, 17h24
  3. Récupération du résultat d'une commande shell
    Par klu dans le forum Langage
    Réponses: 8
    Dernier message: 16/02/2006, 23h34
  4. Réponses: 2
    Dernier message: 02/01/2006, 10h39
  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, 11h04

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