• # SOLUTION

    Posté par  . Évalué à 1.

    Autant pour moi j'ai finit par trouver:
    grep 'chaine' fichier >fichier_de_sortie

    • [^] # Re: SOLUTION

      Posté par  . Évalué à 2.

      Sauf que dans ton message initial, tu mentionne des adresse IP. Et si c'est de l'IPv4, elles contiendront des points.
      Or pour grep (et dans les expressions rationnelles en général, même en version restreinte), le point signifie n'importe quel caractère.
      Donc si tu veux que ça extraie uniquement les lignes qui contiennent les adresses IP telles quelles (plutôt que la même chose mais avec n'importe quoi à la place des points), il faut soit protéger les points par des backslash, soit utiliser l'option -F de grep, qui lui dit de traiter la chaine telle quelle, plutôt que comme une expression rationnelle.
      (et je ne parle même pas de caractères qui viennent avant ou après le fragment de chaîne repéré dans la ligne)

      • [^] # Re: SOLUTION

        Posté par  (site web personnel) . Évalué à 4.

        il faut soit protéger les points par des backslash,

        Protéger avec des backslashes c'est pénible parcequ'il faut parfois protéger une fois supplémentaire lorsqu'y a une indirection (par exemple si on appelle grep depuis le C avec exec). C'est pour cela que beaucoup de personnes préfèrent protéger le point et d'autres caractères spéciaux avec des crochets, comme dans

        grep 'a[.]b'
        pour une expression rationnelle qui reconnaît le texte a.b.

        • [^] # Re: SOLUTION

          Posté par  . Évalué à 2.

          Merci pour la technique, je ne connaissais pas. Comme quoi ça sert de visiter les fofo ^^

          bépo powered

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.