Forum Programmation.shell filtrer un code hexa dans un fichier avec grep

Posté par  .
Étiquettes : aucune
0
24
sept.
2005
bonjour a tous,

je recherche comment faire avec la commande grep une recherche d'un code hexa dans un fichier.
avec la commande less on voir apparaître le code comme cela <82> ce qui correspond a la lettre é . ce que je souhaite, faire une recherche de ce code dans le fichier et le remplacer par é . Comment faire ? Avec vi il affiche ~B et impossible de le filtrer. Comment faire?
Si quelqu'un a une idée autre que la commande grep ?
mon shell est ksh.
Merci pour d'avance pour toutes réponses.
  • # recode ?

    Posté par  . Évalué à 3.

    si tu veux convertir ton fichier d'un charset à un autre, recode sait faire ça très bien.

    Pour répondre à ta question à la lettre:

    $ cat fichier | grep $(echo -e "\202")

    - 202 est le code octal pour 0x82
    - c'est du bash, je ne connais pas ksh (pour l'équivalent éventuel du $(...) )
    • [^] # Re: recode ?

      Posté par  . Évalué à 2.

      UUOC détecté !

      $ grep `echo -e "\202"` fichier
      • [^] # Re: recode ?

        Posté par  . Évalué à 1.

        j'ai pensé a cette commande:
        cat fichier | grep `echo -e "\202"` mais cela ne marche pas.
        Je sais que c'est possible mais comment faire ?
        Une fois que je peux faire un filtre de mon fichier, je souhaite remplacer le résultat par le charactère ( é ), jai pensé a cette commande: sed -e s/$résultat/"é"/g
        • [^] # Re: recode ?

          Posté par  . Évalué à 2.

          Quelle est ta locale ?

          Sinon, sous Emacs, tu peux faire un remplacement complet en copiant/collant le <82> pour le remplacer par un é. Ou en changeant de charset d'enregistrement (C-x-Ret-f).

          Regarde le programme recode (p.ex. "recode lat1..utf8 fichier") (attention, il modifie le fichier).
          • [^] # Re: recode ?

            Posté par  . Évalué à 1.

            Merci .
            Avec la commande recorde cela transforme le format du fichier et remplace les codes hex en ansi. Ca marche.
            Je sais que c'est possible de faire un filtre avec la commande grep ou sed mais bon tanpis. J'ai quand meme le resultat final.

            Merci a tous.
    • [^] # Re: recode ?

      Posté par  . Évalué à 1.

      Désolé, cela ne marche pas quelque soit le shell..

Suivre le flux des commentaires

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