Blog notes Aternatik

Contact
Accueil du site > Articles et ressources > Remplacer des mots dans plusieurs fichiers

Remplacer des mots dans plusieurs fichiers

Une commande bien utile lors de modifications récurrentes :

grep -rl mot1 *.php | xargs sed -i 's/mot1/mot2/g'

Chaque fois que "mot1" est trouvé dans les fichiers *.php, on le remplace par "mot2" en utilisant sed.

Pour grep :

  • -i : Ignorer les differences majuscules/minuscules aussi bien dans le motif que dans les fichiers d’entree. ([NDT] Comme toujours, ceci ne fonctionne pas avec les caracteres accentues...)
  • -l : Ne pas afficher les resultats normaux. A la place, afficher le nom des fichiers pour lesquels des resultats auraient ete affiches.

Dans une arborescence de répertoires

Il faut alors utiliser find :

find . -type f -name "*.php" -print0 | xargs -0 grep -l "cherche" | xargs sed -i '' -e 's/cherche/remplace/g'

Liens :

retour top

2 Messages de forum

Voir toute la discussion

  • Répondre à ce message

    15 octobre 2009 22:24 , par andredupond

    ouais ou avec le paquet rpl (dans ubuntu en tous cas ..) c’est facile

  • Répondre à ce message

    9 novembre 2007 09:58 , par nicedexter

    si l’on veut faire une recherche récursive, utiliser find, grep ne le fera pas avec un pattern de type *.php

    find . -name ’*.py’ -exec grep -rl mot1 \ ; | xargs sed -i ’s/mot1/mot2/g’

Répondre à cette brève

http://www.wikio.fr netvibes Google SPIP Suivre la vie du site RSS 2.0

Aternatik - tél : 04.86.57.31.22 | SIRET 484 907 530 00030 - NAF 6201Z
plan du site |  RSS 2.0 Suivre la vie du site SPIP
Création de sites et solutions internet

Creative Commons License
Le contenu du site est mis à disposition sous un contrat Creative Commons.