Modifier contenu de fichiers (regexp?)

Résolu
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. 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
    1. Modérateur
      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
      1. 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. Modérateur
          Le find est superflu ;-))
          0