Sed 1 caractere par plusieurs

Résolu
tazou74 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
tazou74 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Contributeur Dernière intervention   6 430
 
Salut,

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

1
tazou74 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Contributeur Dernière intervention   6 430
 
-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   Statut Membre Dernière intervention  
 
merci :-))
0