Regex

Résolu
Bonjour,

Je souhaiterais faire un regex sur un grep pour repérer "Addinfo: *, *, 5 " (Le premier * correspond à un nombre de plusieurs chiffres, le second * est un chiffre.)

Naïvement je tente un $grep -E 'Addinfo: *, *, 5 ' et ça ne fonctionne pas... :'(

(Tout ça pour un script pour ceux qui se demanderaient: "Mais pourquoi diable poste t'il ça dans le forum programmation le bougre?...")

4 réponses

  1. Je vais essayé mais j'ai réussi finalement, tu peux me dire si j'ai bon?

    grep -E 'Addinfo: [0123456789]*', [0123456789], 5 '

    Edit: tu peux m'expliquer ton regex plz! :)

    Merci!
    1. Modérateur
      [[:digit:]]{1,}
      Un chiffre ou plus

      [[:digit:]]{1}
      Un chiffre

      [[:digit:]]{1,4}
      De un à quatre chiffre(s)

      Pour info :

      [0-9]*
      Un chiffre ou plusieurs (ou aucun) dans l'intervalle 0 à 9

      [0-9][0-9]*
      Un chiffre ou plusieurs dans l'intervalle 0 à 9
    2. Ok merci! :)
  2. Modérateur
    Essaies ça :

    egrep -o 'Addinfo: [[:digit:]]{1,}, [[:digit:]]{1}, [[:digit:]]{1}'
    1. Je veux sortir toutes les traps snmp d'un log qui se composent de la manière suivante:

      plein d'information, Addinfo: 475, 2, 5 no (null).

      - Il y a forcément des données avant le Addinfo
      - Ensuite il y a ", Addinfo: "
      - Le nombre 475 est un champ variable, je suis même pas sur que ça soit un nombre à 3 chiffres systématiquement.
      - Le chiffre 2 est un champ variable de 1 chiffre systématiquement.
      - je ne sais pas si no (null) est systématique
      1. Modérateur
        Salut,

        Comment se présente exactement ce que tu veux récupérer ?
        Il nous faut un exemple précis et concret dans le contexte..