Sed 1 caractere par plusieurs

Résolu/Fermé
tazou74 Messages postés 6 Date d'inscription vendredi 3 août 2012 Statut Membre Dernière intervention 13 septembre 2012 - 13 sept. 2012 à 10:31
tazou74 Messages postés 6 Date d'inscription vendredi 3 août 2012 Statut Membre Dernière intervention 13 septembre 2012 - 13 sept. 2012 à 11:36
Bonjour,
Je sais que l'on peut remplacer plusieurs caractères par un seul

sed 's/N\{25\}/T/'

mais peut-on faire l'inverse?

car sed 's/T/N\{25\}/'

ne fonctionne pas

merci



A voir également:

1 réponse

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
13 sept. 2012 à 10:59
Salut,

$ echo "abcAdef" | sed -r ':z;s/A/&A/;/A{5}/!bz'
abcAAAAAdef

1
tazou74 Messages postés 6 Date d'inscription vendredi 3 août 2012 Statut Membre Dernière intervention 13 septembre 2012
13 sept. 2012 à 11:09
merci

Je vais être embêtante mais j'aime bien comprendre et j'avoue que je galère avec les tuto de sed dés que je quitte les substitutions simples.

Est-ce que tu voudrais bien m'expliquer la commande?
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
13 sept. 2012 à 11:20
-r
Utilisation de la syntaxe des expressions régulières étendues (ERE)
C'était pour éviter d'avoir à protéger certains caractères comme les accolades

:z
On défini une étiquette où on se branchera en fonction d'une condition

s/A/&A/
On substitue la lettre A par elle même (l'esperluette "&" correspondant au motif se trouvant dans la partie gauche de la substitution)

/A{5}/!bz
On contrôle que le motif "A" n'est pas présent 5 fois à la suite (le "!" symbolisant la négation).
Donc s'il est différent de 5, on se branche à l'étiquette "z" grâce à la commande "b" (branch) et on recommence...
0
tazou74 Messages postés 6 Date d'inscription vendredi 3 août 2012 Statut Membre Dernière intervention 13 septembre 2012
13 sept. 2012 à 11:36
merci :-))
0