[TIPS] : Remplacer un pattern dans plusieurs fichiers

Print Friendly, PDF & Email

Cela arrive souvent sur Linux on vous file un tar.gz avec des chemins à modifier mais qui ne sont pas passés par une variable. Résultat il faut se palucher plusieurs fichier à modifier à la main.

Ben non bien sûr ! sur linux on peut faire cela plus facilement !

Découvrez cette astuce en vidéo :

Un bon grep suivi d’un xargs et le tour est joué :

grep -Rl '/home/titi' * | xargs sed -i -e 's#/home/titi#/home/toto/appli1#g'

Dans cet exemple, on liste tous les fichiers qui contiennent « /home/titi » et on leur applique un sed où on remplace « /home/titi » par « /home/toto/appli1 ». et voilà le tour est joué. L’option s de sed permet de remplacer et l’option g permet de ne pas limiter le remplacement à une substitution mais bien à l’ensemble du fichier.

Découvrez  Top commandes linux #8 : vim, git, od, sql, convert, aria2c