Modifier contenu de fichiers (regexp?)

Résolu
vianney -  
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   -
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 :) !!
A voir également:

3 réponses

vianney
 
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   Statut Modérateur Dernière intervention   4 896
 
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
vianney
 
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   Statut Modérateur Dernière intervention   4 896
 
Le find est superflu ;-))
0