[TIPS] : Remplacer un pattern dans plusieurs fichiers

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.

Un commentaire sur “[TIPS] : Remplacer un pattern dans plusieurs fichiers

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s