[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  [TIPS] : Ubuntu - boot plein