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
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
A voir également:
- Sed remplacer caractère spéciaux
- Caractere speciaux - Guide
- Caractère spéciaux - Guide
- Caractère spéciaux mac clavier - Guide
- Caractère ascii - Guide
- Remplacer disque dur par ssd - Guide
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
13 sept. 2012 à 10:59
Salut,
$ echo "abcAdef" | sed -r ':z;s/A/&A/;/A{5}/!bz' abcAAAAAdef
13 sept. 2012 à 11:09
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?
13 sept. 2012 à 11:20
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...
13 sept. 2012 à 11:36