Partage
  • Partager sur Facebook
  • Partager sur Twitter

Commande grep linux ubuntu

    16 avril 2015 à 11:47:42

    Bonjour,

    Je débute dans le shell.

    J'ai un fichier test.txt qui contient :

    EVENT AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA "XXXXX" Minor
    FORMAT L'equipement a redemarre $r;
    EVENT BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB "XXXXX" Minor
    FORMAT L'equipement a redemarre $r;
    EVENT CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC "XXXXX" Major
    FORMAT L'equipement a redemarre $r;
    EVENT DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD "ATE" Critical
    FORMAT L'equipement a redemarre $r;
    etc......

    avec plusieur millier de lignes de log et je souhaiterais obtenir :

    FORMAT L'equipement a redemarre $r; Minor
    FORMAT L'equipement a redemarre $r; Minor
    FORMAT L'equipement a redemarre $r; Major
    FORMAT L'equipement a redemarre $r; Critical
    etc.............

    ou bien cela :

    Minor FORMAT L'equipement a redemarre $r;
    Minor FORMAT L'equipement a redemarre $r;
    Major FORMAT L'equipement a redemarre $r;
    Critical FORMAT L'equipement a redemarre $r;
    etc............

    ou encore :

    Minor L'equipement a redemarre $r;
    Minor L'equipement a redemarre $r;
    Major L'equipement a redemarre $r;
    Critical L'equipement a redemarre $r;
    etc..........

    ou encore :

    L'equipement a redemarre $r; Minor
    L'equipement a redemarre $r; Minor
    L'equipement a redemarre $r; Major
    L'equipement a redemarre $r; Critical
    etc.............


    Et je souhaiterais par la suite tranferer le fichier.txt une fois filtré de la sorte dans un document excel qui comporte deux colonnes :


    COLONNE 1 | COLONNE 2

    L'equipement a redemarre $r; | Minor
    L'equipement a redemarre $r; | Minor
    L'equipement a redemarre $r; | Major
    L'equipement a redemarre $r; | Critical
    etc.............

    Auriez-vous des idées à me proposer ?
    ps : je travaille sur le shel de la dernière version de ubuntu.

    Merci d'avance pour votre aide.
    • Partager sur Facebook
    • Partager sur Twitter
      16 avril 2015 à 11:58:21

      Salut,

      dans ce genre ?

      cat test | sed 'N;s/\n/ /' | awk '{$1=$2=$3=""; print $0 }' | sed 's/\s*//'



      • Partager sur Facebook
      • Partager sur Twitter
        16 avril 2015 à 12:01:39

        salut,

        c'est bien de nous montrer ce que tu as, et ce que tu veux.

        tu pourrais faire l'effort (parce qu'il va falloir que tu le formules pour trouver l'équivalent dans un langage de programmation) le raisonnement qui conduit de l'un à l'autre !

        ce n'est pas un travail pour grep, mais pour sed.

        le premier ne fait que sélectionner des lignes.

        le deuxième sélectionne des lignes, et peut les éditer.

        pourquoi autant d'alternatives ?

        pourquoi autant d'alternatives pour, au final, n'utiliser que la dernière ?

        Neorian:

        UUOC!

        sed tout seul peut y arriver. il n'est pas utile, voire contre-performant, de piper le même programme, ou des programmes qui ont ± la même fonction.

        tu veux pas ajouter un grep pour faire bonne mesure ? XD

        -
        Edité par dantonq 16 avril 2015 à 12:04:30

        • Partager sur Facebook
        • Partager sur Twitter

        Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

          16 avril 2015 à 13:36:06

          Merci Neorian c'est presque cela. Pourrais-tu m'expliquer ta ligne de code car je devrait faire quelque modification.

          Voila le résultat de ta commande :

          "Ligne 2" Normal FORMAT ;Interface $1; Up;
          "PHT" Normal FORMAT ;Interface $1; Up;
          "Status Alarms" Normal FORMAT ;Interface $1; Up;
          "IGNORE" Warning FORMAT Mauvaise authentification SNMP ou Login
          "Status Alarms" Warning FORMAT EGP Neighbor Down (egpNeighborLoss Trap) enterprise:$E ($e) neighbor $1
          "LOGONLY" Normal FORMAT NO FORMAT DEFINED
          .
          .
          .
          .
          Et voiçi le document d'origine :
          EVENT SNMP_Link_Up_Ligne12 .1.3.6.1.6.3.1.1.5.4 "Ligne 12" Normal
          FORMAT ;Interface $1; Up;
          EVENT SNMP_Link_Up_Ligne2 .1.3.6.1.6.3.1.1.5.4 "Ligne 2" Normal
          FORMAT ;Interface $1; Up;
          EVENT SNMP_Link_Up_PHT .1.3.6.1.6.3.1.1.5.4 "PHT" Normal
          FORMAT ;Interface $1; Up;
          EVENT SNMP_Link_Up .1.3.6.1.6.3.1.1.5.4 "Status Alarms" Normal
          FORMAT ;Interface $1; Up;
          EVENT SNMP_Authen_Failure .1.3.6.1.6.3.1.1.5.5 "IGNORE" Warning
          FORMAT Mauvaise authentification SNMP ou Login
          EVENT SNMP_EGP_Down .1.3.6.1.6.3.1.1.5.6 "Status Alarms" Warning
          FORMAT EGP Neighbor Down (egpNeighborLoss Trap) enterprise:$E ($e) neighbor $1
          EVENT dot1agCfmFaultAlarm .1.3.111.2.802.1.1.8.0.1 "LOGONLY" Normal
          FORMAT NO FORMAT DEFINED
          Dans ton résultat , je souhaiterais aussi supprimer la partie entre guillemet " "  à chaque début de ligne.
          Merci à toi

          -
          Edité par AliHalloumi 16 avril 2015 à 13:37:59

          • Partager sur Facebook
          • Partager sur Twitter
            16 avril 2015 à 13:41:03

            le premier sed permet de joindre la ligne EVENT et FORMAT,

            awk retire les 3 premiers champs 

            et le dernier sed supprime les espaces au début de la ligne

            • Partager sur Facebook
            • Partager sur Twitter

            Commande grep linux ubuntu

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown