Regex remplacer la 1ere occurence
Bonjour,
je voudrai remplacer toute occurrence majuscule par minuscule en fonction d'un regex. Malheureusement pour moi, quand il trouve le regex dans une ligne, il change du regex jusqu'à la fin de la ligne.
Ligne: <texte id="cellule_10" taille="50" table="pap_MH" champ="DénOMINATI" label="Dénomination" unite="" ancrableable="oui" />
Commande shell :
Code:
sed -i 's/champ=\".*\".*/\L\0/' mon_fichier_qui_contient_le_texte.txt
Je voudrai juste mettre tout ce qui est dans champ="" en minuscule sur chaque ligne de mon fichier.
Merci bien.
Albin
Réponse complète à la question
Bonjour,
attention, ça pique les yeux:
Code:
1 2
| $ cat sedtest.txt
<texte id="cellule_10" taille="50" table="pap_MH" champ="DénOMINATI" label="Dénomination" unite="" ancrableable="oui" /> |
Code:
1 2
| $ sed '/champ=/{s/\(.*\)\(champ="[^"]*"\)\(.*\)/\2\n\1\n\3/;h;s/\n.*//;y/àçéèëêïîöôùüûÀÇÉÈËÊÏÎÖÔÙÜÛ/aceeeeiioouuuACEEEEIIOOUUU/;s/\(champ="\)\([^"]*\)/\1\L\2/;G;s/\(.*\)\n\(.*\)\n\(.*\)\n\(.*\)/\3\1\4/}' sedtest.txt
<texte id="cellule_10" taille="50" table="pap_MH" champ="denominati" label="Dénomination" unite="" ancrableable="oui" /> |