Sed 1 caractere par plusieurs
Résolu
tazou74
Messages postés
6
Statut
Membre
-
tazou74 Messages postés 6 Statut Membre -
tazou74 Messages postés 6 Statut Membre -
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
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
1 réponse
-
Salut,
$ echo "abcAdef" | sed -r ':z;s/A/&A/;/A{5}/!bz' abcAAAAAdef
-
-
-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... -
-