Shell expression régulière

Résolu
little_red Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
little_red Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

3 réponses

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
$ echo chat | sed 's/[^a]/-/g'
--a-
0
lami20j
 
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
0
little_red Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
ha merci beaucoup !!!!
0