Partager cette astuce

Vous aimez cette astuce ? Partagez la :

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).


Créer un compte / Newsletter

Entrez votre pseudo et email pour créer un compte ou vous abonner à la newsletter du site.

Newsletter

Pour vous désabonner, cliquez ici ».