Manipuler les fichiers textes avec SED

Fermé
b.hamichi - 1 janv. 2009 à 17:13
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 1 janv. 2009 à 20:32
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
A voir également:

2 réponses

anix Messages postés 72 Date d'inscription samedi 29 novembre 2003 Statut Membre Dernière intervention 24 octobre 2010 5
1 janv. 2009 à 19:41
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 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
1 janv. 2009 à 20:32
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