Comment rechercher et remplacer des mots entiers à l'aide de sed?
Faire
sed -i 's/[oldtext]/[newtext]/g' <file>
remplacera également les correspondances partielles de [oldtext]
que je ne veux pas que ce soit fait.
Comment rechercher et remplacer des mots entiers à l'aide de sed?
Faire
sed -i 's/[oldtext]/[newtext]/g' <file>
remplacera également les correspondances partielles de [oldtext]
que je ne veux pas que ce soit fait.
Sur Mac OS X, ni de ces regex syntaxes de travail à l'intérieur de sed pour la mise en correspondance des mots entiers
\bmyWord\b
\<myWord\>
Écoutez-moi maintenant, et croyez-moi, plus tard, ce laid syntaxe est ce que vous devez utiliser:
/[[:<:]]myWord[[:>:]]/
Ainsi, par exemple, pour remplacer la menthe avec de la menthe pour les mots entiers uniquement:
sed "s/[[:<:]]mint[[:>:]]/minty/g"
Source: re_format page de man
Dans une de mes machines, la délimitation du mot avec " \b
" (sans les guillemets) ne fonctionnait pas. La solution consistait à utiliser " \<
" pour le délimiteur initial et " \>
" pour le délimiteur final.
Pour expliquer avec l'exemple de Joakim Lundberg :
$ echo "bar embarassment" | sed "s/\<bar\>/no bar/g"
no bar embarassment
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.