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 :) !!

3 réponses

  1. 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
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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
  3. 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
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Le find est superflu ;-))
      0