Aller au contenu

Sujets conseillés

Posté

Une question que je me pose depuis longtemps et à laquelle je n'ai pas trouvé de réponses :

Est-il possible de supprimer ou remplacer un texte identique sur plusieurs pages html ou php avec une commande ssh directement sur le serveur ?

C'est un truc qui faciliterait la tâche plutôt que de faire les changement en local sur des centaines de pages puis charger ces mêmes fichiers édités sur le serveur. :unsure:

Posté

Salut,

Oui tu peux éditer des fichiers en SSH.

Tu as plusieurs éditeurs comme VI, NANO ou PICO.

Si tu veux éditer le fichier page.php situé dans le répertoire /var/www/ton_site/

Suffit de faire en ligne de commande :

pico /var/www/ton_site/page.php

Posté

Tu n'as pas compris ma question Seb... ou je n'ai pas été assez clair. :unsure:

Je veux savoir si on peut créer un script ou utiliser une ligne de commande qui va pouvoir modifier une portion de code ou de texte identique sur plusieurs centaines de pages.

Posté (modifié)

Bonjour,

Je suis pas expert sous Linux... mais une petite recherche sur : find and replace Bash

M'a mené sur cette page : http://www.bigbold.com/snippets/posts/show/110

for fl in *.php; do
mv $fl $fl.old
sed 's/find/replace/g' $fl.old > $fl
done

Il me semble que ça devrait marcher :) A noter qu'un backup de tous les fichiers sera créé avec le script donné, à toi de voir si tu veux le modifier si tu es très sûr de toi ;)

Modifié par TheRec
Posté

Salut Americas,

Il existe effectivement des utilitaires sous Unix/Linux qui permettent d'éditer globalement un ou plusieurs fichiers, notamment "sed" (stream editor)

Le risque d'utiliser ces outils tient non pas à leur exécution, parce qu'ils sont fiables, mais surtout aux compétences en matière de script de celui qui les lance.

En clair, ils permettent le meilleur comme le pire, et peuvent lors d'une erreur de manipulation, complètement effacer tes fichiers.

Un exemple d'utilisation:

cd /home/repertoire
for i in *
do
  mv $i /tmp/$i
  sed 's/hello/goodbye/g' < /tmp/$i > $i
  /bin/rm /tmp/$i
done

Ce code prend tous les fichiers d'un répertoire donné (celui d'où tu lances la commande), renomme ces fichiers en /tmp/$i (même nom dans /tmp) et remplace globalement toutes les chaînes "hello" par "goodbye" dans ces fichier. Le résultat est stocké en lieu et place du fichier original.

Il efface ensuite les fichiers de /tmp pour éviter de laisser des fichiers inutiles.

Si tu as du mal à interpréter ce code, il vaut mieux l'éviter parce qu'une erreur génèrera une catastrophe :) .

Que cherches-tu à faire ? Ce serait plus simple pour te donner un exemple.

Dan

Posté

Pour expliquer les choses plus clairement, j'ai un marqueur de stats sur toutes les pages du site que je veux effacer sans avoir à le faire en local et charger tous les fichiers.

Mais ceci est valable également pour un script de publicité qui apparait à un endroit précis sur plusieurs pages... cette commande me permettrait d'actualiser tout cela en un tour de main.

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...