Manipuler les fichiers textes avec SED

b.hamichi -  
jipicy Messages postés 41342 Statut Modérateur -
Bonjour,
Je suis débutant en unix shell, je ne trouve pas de solution à ce probleme:

Remplacer la chaine A21E1_5
Si le chiffre apres _ est inférieur à 10 alors on obtien: r01s1b05 (un ZERO apres b)
Si le chiffre apres _ est superieur ou egale à 10 alors on obtien: r01s1b11 (pas de ZERO apres b)

Merci pour votre aide

2 réponses

anix Messages postés 78 Statut Membre 5
 
Utilise plutot le awk, il y a possibilité d'utiliser des structures conditionnelles (if) là dedans. Je ne sais pas avec sed comment faire.
0
jipicy Messages postés 41342 Statut Modérateur 4 896
 
Salut,
[tmpfs]$ cat hamichi
A21E1_5
A21E1_12
A21E1_35
A21E1_2
A21E1_7
A21E1_128

[tmpfs]$ sed '/A21E1_[0-9]\{1\}\b/{s//r01s1b05/};/A21E1_[0-9]\{2,\}/{s//r01s1b11/}' hamichi
r01s1b05
r01s1b11
r01s1b11
r01s1b05
r01s1b05
r01s1b11

[tmpfs]$
;-))
0