Modifier contenu de fichiers (regexp?)

Résolu/Fermé
vianney - 28 nov. 2008 à 16:15
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 28 nov. 2008 à 16:44
Bonjour,

Alors voila je vous explique ce que je voudrais faire :
J'ai une grosse quantité de fichier php (reparti dans une arborescence)
J'aimerai que dans chaque fichier, le mot _shared soit remplacé par _shared_old

quelque chose dans le genre :
$ find . -name '*php' -exec grep -l '_shared' {} \;

J'aurais au une 10aine de fichier comme résultat, je l'aurais fait a la main dans chaque fichier, mais la j'en ai 200.

Au final j'ai pas trop d'idée pour arriver a mes fins, peut etre avec un script ...
Si vous avez un truc ... Merci d'avance :) !!

3 réponses

je m'auto répond parce qu'en recherchant sur le forum j'ai eu l'idée d'utilisé sed...
Mais
apres la tentative :
$ find . -name '*php' -exec sed 's/_shared/_shared_old/g' {} \;

ca ne marche toujours pas...
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
28 nov. 2008 à 16:37
Salut,

A tester d'abord sur 3 ou 4 fichiers de tests dans un même répertoire :
sed -i -s 's/_shared/_shared_old/g' *.php
Si tu veux faire une sauvegarde de chaque fichier, tu peux rajouter :
sed -i.bak -s 's/_shared/_shared_old/g' *.php
;-))
0
OK super!
$ find . -name '*php' -exec sed -i 's/_shared/_shared_old/g' {} \; a fonctionné...

un man sed m'aurai peut etre aidé ...

Merci!
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
28 nov. 2008 à 16:44
Le find est superflu ;-))
0