Shell expression régulière

Résolu
Bonjour,
voila un petit problème en shell : je cherche à remplacer dans une chaine tous les caractères sauf certains. Je m'explique : si j'ai 'chat' je souhaite remplacer tous les caractères sauf 'a' par un motif quelconque ( '-' par exemple).

J'ai essayé des choses du genre 'tr' ou 'sed' avec des expressions regulière avec ^a.. mais je ne comprend pas. Mon dernier essai est :

echo chat|tr "[^a]" "-" et cela me retourne ch-t. Je voudrais l'inverse !

Pouvez vous m'aider ?

Merci
Configuration: Windows 7
Firefox 3.5.6

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. Salut,

    Avec tr
    $ echo chat| tr '[b-z]' '-'
    --a-


    A savoir que tr n'utilise pas des regex. Si les regex s'impose alors sed c'est mieux que tr