Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 19/06/2017, à 17: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é wink

Bonne soirée à tous smile

Donut

Hors ligne

#2 Le 19/06/2017, à 17: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, à 21:00

DonutMan75

Re : Petite question REGEX

Hello pingouinux,
merci pour ta réponse smile
Donc si je comprends bien, il faudra faire du cas par cas à chaque fois ?

Bonne soirée et à bientôt smile

Donut

Hors ligne

#4 Le 19/06/2017, à 21: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, à 21: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, à 21: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