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 "[email protected]", et que la nouvelle adresse est "[email protected]", voici la commande :

find . -name "*.php" -print | xargs sed -i 's/[email protected]/[email protected]/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 "[email protected]" 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à "[email protected]" avant la commande et ceux qui contenaient "[email protected]" (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 ».