|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() |
Bonjour,
J'ai un petit problème assez agaçant, en fait j'administre un serveur Apache, et je fais souvent la même modification dans le fichier php.ini. Je change le display_errors de 'on' à 'off' très souvent dans la console avec vi. C'est chiant parce qu'il faut parcourir le fichier changer le 'on' pour 'off', et quand on a fini on remet 'off' a la place de 'on' ![]() ![]() ![]() Je fais donc appel au linuxien, vieux, barbu, qui a les aisselles mouillées pour m'aider ! Non je plaisante, en fait j'ai entendu parler de quelque chose du nom de awk qui permettait de faire la modification en une ligne de commande dans le shell. Je peux me tromper, donc je suis ouvert à toutes solutions, mais au final c'est ce que j'aimerai : faire la modification en une ligne de commande. |
|
|
00
|
|
|
#2 | ||
|
Membre émérite
![]() Inscription : janvier 2004 Messages : 990 ![]() |
Pas besoin de sortir de awk, un petit sed devrait suffire.
Juste pour le fun, on peut le faire à la ed-like. Code :
sed -i '/^display_errors/{s/Off/On/i}' php.ini Et il faut échanger le "On" et le "Off" de la commande si tu veux passer le display_errors à Off. À partir de ça tu peux facilement faire un script shell qui effectue une ou l'autre des commandes selon si tu dois activer ou désactiver cette variable. Quelque chose de ce genre : Code :
C'est faire le vieux barbus que d'utiliser ed ?
__________________
Les vaches ne peuvent PAS voler, quoi qu'elles aient pu vous raconter. |
||
|
|
00
|
|
|
#3 |
|
Futur Membre du Club
![]() |
C'est curieux mais il me dit que l'option '-i' n'existe pas pour sed
et quand j'essaye de mettre -e il me dit que c'est l'option s (entre les accolades qui ne fonctionne pas) |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Inscription : mars 2002 Messages : 946 ![]() |
C'est parce que tu n'as pas un sed de qualité. Il faudrait enlever l'option -i et passer par un fichier temporaire ; modifier légèrement la syntaxe du bloc ; et enlever le flag i final...
Ou alors, utiliser perl : Code :
perl -i -pe 's/^(display_errors\s+)On/\1Off/i' |
|
|
00
|
|
|
#5 |
|
Futur Membre du Club
![]() |
Comment faire pour avoir un sed de qualité ?
|
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Inscription : mars 2002 Messages : 946 ![]() |
Utiliser gnu sed.
Sur certains BSD, il est appelé "gsed". |
|
|
00
|
|
|
#7 | |||
|
Membre expérimenté
![]() Inscription : mars 2007 Messages : 469 ![]() |
Citation:
le sed de GNU est mieux, mais pour ce que tu veux faire, le sed de base suffit largement :1) sélectionne la ligne contenant la chaîne 'display_errors' 2) substitue Off par On Code :
__________________
Loi de Murphy: La Théorie c'est quand ça ne marche pas mais que l'on sait pourquoi. La Pratique c'est quand ça marche mais qu'on ne sait pas pourquoi. Quand la théorie rejoint la pratique ça ne marche pas et on ne sait pas pourquoi. |
|||
|
|
00
|
|
|
#8 |
|
Futur Membre du Club
![]() |
Merci beaucoup à tous ça mache très bien !
et désolé d'avoir un sed qui pue
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com