Bonjour, je cherche la commande qui permet de remplacer un texte sur l'ensemble des fichiers d'un répertoire sur unix.
Je voudrais remplacer le texte suivant :
parCode:"/www/docs/syndrome.ms.fcm
Code:$_SERVER['DOCUMENT_ROOT']."
Version imprimable
Bonjour, je cherche la commande qui permet de remplacer un texte sur l'ensemble des fichiers d'un répertoire sur unix.
Je voudrais remplacer le texte suivant :
parCode:"/www/docs/syndrome.ms.fcm
Code:$_SERVER['DOCUMENT_ROOT']."
Bonjour mrman,
La commande sed permet exactement cela (je me suis permi de changer les guillements doubles dans $_SERVER[...] en guillemets simples pour simplifier la commande).
Sur un fichier particulier :
Sur tous les fichiers du même dossier :Code:sed -i -e 's|"/www/docs/syndrome.ms.fcm|$_SERVER["DOCUMENT_ROOT"]."|' monfichier.php
Si tes fichiers sont répartis dans plusieurs sous dossiers, tu peux faire une recherche avec find :Code:sed -i -e 's|"/www/docs/syndrome.ms.fcm|$_SERVER["DOCUMENT_ROOT"]."|' *.php
Bon courage !Code:find . -name '*.php' -exec sed -i -e 's|"/www/docs/syndrome.ms.fcm|$_SERVER["DOCUMENT_ROOT"]."|' '{}' ';'
Bonjour,
sed est l'outil à utiliser.
on manque un peu de contexte pour donner un réponse précise; en gros :vu que tes expressions comportent des barres obliques, des apostrophes et des guillemets, ce sera peut-être un peu plus compliqué, mais comme je te l'ai dit, on manque de contexte...Code:sed 's/ancien/nouveau/'