Pages : 1
#1 Le 19/06/2017, à 16:40
- DonutMan75
Petite question REGEX
Bonsoir à tous, c'est encore moi ^^
En continuant mon étude de Vim je me suis posé une question à laquelle je n'ai pas réussi à trouver de réponse...
Avec grep ou sed, comment feriez-vous pour changer les mots "This" ou "this" en (respectivement) "Ceci" et "ceci" en une seule regex ? Est-ce possible ?
On peut tout à fait le faire en deux passes :
$ ma_commande | sed -e 's/This/Ceci/g' | sed -e 's/this/ceci/g'
Merci d'avance, c'est vraiment par pure curiosité
Bonne soirée à tous
Donut
Hors ligne
#2 Le 19/06/2017, à 16:58
- pingouinux
Re : Petite question REGEX
Bonjour,
Tu peux déjà le faire avec un seul sed :
$ echo "This est this avec une majuscule" | sed -e 's/This/Ceci/g;s/this/ceci/g'
Ceci est ceci avec une majuscule
Hors ligne
#3 Le 19/06/2017, à 20:00
- DonutMan75
Re : Petite question REGEX
Hello pingouinux,
merci pour ta réponse
Donc si je comprends bien, il faudra faire du cas par cas à chaque fois ?
Bonne soirée et à bientôt
Donut
Hors ligne
#4 Le 19/06/2017, à 20:25
- pingouinux
Re : Petite question REGEX
Personnellement, s'il y a beaucoup de mots à remplacer, je ferais ça en python.
Hors ligne
#5 Le 19/06/2017, à 20:44
- grigouille
Re : Petite question REGEX
On fait la recherche sur This ou this
/\v(<this>|<This>)
On fait la substitution
:%s//\={"this":"ceci", "This":"Ceci"}[submatch(1)]/g
Debian (xfce) 12
HP LaserJet M1132 MFP
Hors ligne
#6 Le 19/06/2017, à 20:47
- grigouille
Re : Petite question REGEX
Il y aussi le plugin Abolish de Tim Pope
https://github.com/tpope/tpope-vim-abolish
Debian (xfce) 12
HP LaserJet M1132 MFP
Hors ligne
Pages : 1