Remplacer une chaine dans plusieurs fichiers Linux
Si vous utilisez Linux, vous aurez forcément besoin un jour de remplacer une chaine de caractères dans plusieurs fichiers, sans pour autant devoir tout faire manuellement.
Imaginons, par exemple, que vous souhaitiez remplacer une adresse email dans tous les fichiers .php d'un répertoire et de ses sous-répertoires. Si l'adresse à remplacer est "georges@6ma.fr", et que la nouvelle adresse est "michel@6ma.fr", voici la commande :
find . -name "*.php" -print | xargs sed -i 's/georges@6ma.fr/michel@6ma.fr/g'
Remplacez *.php par l'extension que vous voulez. Et si vous souhaitez le faire dans tous les fichiers (toutes extensions), vous pouvez également faire *.*
Attention : Faites toutefois très attention à cette commande car les modifications sont irreversibles si vous faites des bêtises. Par exemple si vous aviez déjà des "michel@6ma.fr" dans certains fichiers avant de lancer la commande, et que vous vous êtes trompé, vous ne pourrez plus faire la différence entre les fichiers qui contenaient déjà "michel@6ma.fr" avant la commande et ceux qui contenaient "georges@6ma.fr" (sauf en utilisant la date de dernière modification des fichiers, mais c'est corsé quand il s'agit de centaines de fichiers).
Imaginons, par exemple, que vous souhaitiez remplacer une adresse email dans tous les fichiers .php d'un répertoire et de ses sous-répertoires. Si l'adresse à remplacer est "georges@6ma.fr", et que la nouvelle adresse est "michel@6ma.fr", voici la commande :
find . -name "*.php" -print | xargs sed -i 's/georges@6ma.fr/michel@6ma.fr/g'
Remplacez *.php par l'extension que vous voulez. Et si vous souhaitez le faire dans tous les fichiers (toutes extensions), vous pouvez également faire *.*
Attention : Faites toutefois très attention à cette commande car les modifications sont irreversibles si vous faites des bêtises. Par exemple si vous aviez déjà des "michel@6ma.fr" dans certains fichiers avant de lancer la commande, et que vous vous êtes trompé, vous ne pourrez plus faire la différence entre les fichiers qui contenaient déjà "michel@6ma.fr" avant la commande et ceux qui contenaient "georges@6ma.fr" (sauf en utilisant la date de dernière modification des fichiers, mais c'est corsé quand il s'agit de centaines de fichiers).
Ajouté le 03-11-2008
Lu 3385 fois
Astuce ajoutée par :
Damien Desrousseaux
Pas de support par email, veuillez utiliser le forum informatique pour toute question.
Reproduction partielle ou totale interdite sans l'accord de l'auteur.



