's/([[:upper:]]*)tr([[:upper:]]+)|([[:upper:]]+)tr([[:upper:]]*)/\1TR\2/g'

c'est logique
il vérifie si il y a 0,1, ou plusieurs lettres MAJ devant le 'tr' et au moins 
une lettre MAJ après
ou
si il y a au moins une lettre MAJ avant le 'tr', et si il y a 0,1, ou plusieurs 
lettres MAJ après

ce sed peut fonctionner sur des gros fichiers sans problème.



Le 22/06/2016 à 10:51, andre_deb...@numericable.fr a écrit :
On Tuesday 21 June 2016 23:34:53 Pierre Faivre wrote:
oui, c'est ce que je croyais avoir compris, donc pour modifier
directement le fichier :
$sed -Ei
's/([[:upper:]]*)tr([[:upper:]]+)|([[:upper:]]+)tr([[:upper:]]*)/\1TR\2/g'
fichier
Merci, ça marche bien.

Mais pourquoi tous ces "upper", la commande peut-elle
modifier tous les mots concernés d'un texte sans limite ?

André


Répondre à