Americas Posté 29 Octobre 2005 Posté 29 Octobre 2005 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.
Seb65 Posté 30 Octobre 2005 Posté 30 Octobre 2005 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
Americas Posté 31 Octobre 2005 Auteur Posté 31 Octobre 2005 Tu n'as pas compris ma question Seb... ou je n'ai pas été assez clair. 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.
TheRec Posté 31 Octobre 2005 Posté 31 Octobre 2005 (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; domv $fl $fl.oldsed 's/find/replace/g' $fl.old > $fldone 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é 31 Octobre 2005 par TheRec
Dan Posté 31 Octobre 2005 Posté 31 Octobre 2005 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/repertoirefor i in *do mv $i /tmp/$i sed 's/hello/goodbye/g' < /tmp/$i > $i /bin/rm /tmp/$idone 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
Americas Posté 31 Octobre 2005 Auteur Posté 31 Octobre 2005 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.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant