éditer un fichier de config en shell

éditer un fichier de config en shell - Shell/Batch - Programmation

Marsh Posté le 21-09-2008 à 21:37:48    

salut a tous
 
Je voudrai avec un script shell éditer un fichier de config genre apache, en gros je voudrai lancer le script, qu'il demande à l'user les paramètres qu'il veut avec des champs a remplir, ça je sais faire, mais mon problème c'est comment après appliquer les modifs au fichier?  
en cherchant un peut j'ai trouvé la commande sed, mais existe t'il d'autres moyens plus propre ou plus simple?
Merci

Reply

Marsh Posté le 21-09-2008 à 21:37:48   

Reply

Marsh Posté le 21-09-2008 à 22:48:18    

C'est très bien sed. Tu peux le faire avec vi aussi, mais c'est plus chiant. Ou avec PERL, mais c'est plus du shell pour le coup.
Le plus simple est de créer un fichier template avec des mots-clefs à remplacer à coup de sed pour créer un nouveau fichier de config'.

Reply

Marsh Posté le 22-09-2008 à 10:19:23    

Suivant ce que tu veux faire, ed peut être plus adapté que sed.

Reply

Marsh Posté le 27-09-2008 à 19:36:52    

J'aurai genre à éditer un fichier comme ça, donc mettre tous les valeurs en variables et après de les modifier dans le fichier si elles ont changé, mais je trouve que sed est vraiment une usine à gaz pour faire ça, vous aurai pas un truc plus simple?.
 

Code :
  1. // CONFIGURATION DU GAMEPLAY DU SERVEUR
  2. // Indique le temps d.achat en minute maximum :
  3. mp_buytime 1
  4. // Indique le montant maximum d.argent disponible, maximum = 16000
  5. mp_startmoney 8000
  6. // Indique le temps en seconde avant que la bombe n.explose :
  7. mp_c4timer 30
  8. // Autorise les grenades aveuglantes ou non :
  9. mp_flashlight 1
  10. // 1 enables hearing footsteps, 0 disables it
  11. mp_footsteps 1
  12. // 1 enables falling damage, 0 disables it
  13. mp_falldamage 1
  14. // Indique le nombre d.otage maximum tué avant que le joueur soit déconnecté. // 0 désactive cette fonctionnalité
  15. mp_hostagepenalty 0

Reply

Marsh Posté le 27-09-2008 à 21:59:37    

hppp a écrit :

J'aurai genre à éditer un fichier comme ça, donc mettre tous les valeurs en variables et après de les modifier dans le fichier si elles ont changé, mais je trouve que sed est vraiment une usine à gaz pour faire ça, vous aurai pas un truc plus simple?.
 

Code :
  1. // CONFIGURATION DU GAMEPLAY DU SERVEUR
  2. // Indique le temps d.achat en minute maximum :
  3. mp_buytime 1
  4. // Indique le montant maximum d.argent disponible, maximum = 16000
  5. mp_startmoney 8000
  6. // Indique le temps en seconde avant que la bombe n.explose :
  7. mp_c4timer 30
  8. // Autorise les grenades aveuglantes ou non :
  9. mp_flashlight 1
  10. // 1 enables hearing footsteps, 0 disables it
  11. mp_footsteps 1
  12. // 1 enables falling damage, 0 disables it
  13. mp_falldamage 1
  14. // Indique le nombre d.otage maximum tué avant que le joueur soit déconnecté. // 0 désactive cette fonctionnalité
  15. mp_hostagepenalty 0



 
Ben en fait, il se trouve que les fichiers de config "à la mode" zindow offrent certains avantages.
Ils sont écrits de cette façon
[chapitre]
item=valeur
item=valeur
item=valeur
item=valeur
 
[chapitre]
item=valeur
item=valeur
item=valeur
item=valeur
etc
 
Et ce formalisme commence à être assez bien pris en compte car Python possède une librairie "ConfigParser" qui permet de traiter ce genre de fichier. Bon, c'est plus du shell évidemment mais c'est pour dire qu'il existe certains outils déjà faits.
 
Sinon pour ta question ben tu peux très bien créer une fonction qui va aller lire et ou écrire l'info que tu souhaites. Certes cette fonction risque d'être une "usine à gaz" mais une fois écrite, tu pourras t'en servir assez facilement quand t'en auras besoin...


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 27-09-2008 à 22:07:43    

Sve@r a écrit :


 
Ben en fait, il se trouve que les fichiers de config "à la mode" zindow offrent certains avantages.
Ils sont écrits de cette façon
[chapitre]
item=valeur
item=valeur
item=valeur
item=valeur
 
[chapitre]
item=valeur
item=valeur
item=valeur
item=valeur
etc
 
Et ce formalisme commence à être assez bien pris en compte car Python possède une librairie "ConfigParser" qui permet de traiter ce genre de fichier. Bon, c'est plus du shell évidemment mais c'est pour dire qu'il existe certains outils déjà faits.
 
Sinon pour ta question ben tu peux très bien créer une fonction qui va aller lire et ou écrire l'info que tu souhaites. Certes cette fonction risque d'être une "usine à gaz" mais une fois écrite, tu pourras t'en servir assez facilement quand t'en auras besoin...


Bon bien je vais me plonger dans le développement de cette fonction et y passer quelles que heures

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed