Bsr,
je cherche à scripter des modifications de fichiers de type
-
décommenter une ligne du type
#foobar = 0
si elle existe pour mettre
#foobar = 1
ou la créer si elle n'exsite pas modifier des entrées de fichiers de type ini
[section]
entree = pouet
Je sais que l'on peut faire tout ça avecgrep
sed
desregex
etc mais je ne suis pas du tout à l'aise avec ça.
Existe-t-il des fonctions ou librairies d'un peu plus haut niveau pour ce genre de manipulations ?
# lite ton cours ?
Posté par NeoX . Évalué à 4 (+1/-0).
non parce que sinon, tu peux reecrire sed/grep/awk en C, perl, voire en python, mais c'est un overkill non ?
# pour les ini tout du moins
Posté par fearan . Évalué à 4 (+2/-1). Dernière modification le 16 septembre 2025 à 07:18.
il existes des bibliothèque en C :)
sinon on cherchant un peu (bon grande expérience au niveau des mots clés (ini command line modification))
https://stackoverflow.com/questions/22834680/simple-linux-command-line-command-to-modify-an-option-in-a-ini-like-config-file
la question à 10 ans :)
J'aime beaucoup le détournement de git config :D
mais sinon on y trouve aussi un outil dédié aux .ini
(par contre si c'est pour répondre à un exercice c'est hors scope je le crains :)
Il ne faut pas décorner les boeufs avant d'avoir semé le vent
# overkill
Posté par guitou . Évalué à 1 (+0/-0).
Hello,
Tu peux toujours faire mumuse a installer
ansible
pour faire usage des commandes ditesad hoc
et plus specifiquement modulelineinfile
dans ton cas, mais t'as aussi vite fait de te familiariser avecgrep
,sed
et plus generalement lesregexp
++
Gi)
# crudini
Posté par shbrol . Évalué à 1 (+0/-0).
Pour modifier des fichiers .ini depuis le terminal ou un script shell, tu peux utiliser crudini.
# Augeas
Posté par benoar . Évalué à 2 (+0/-0).
Ça me fait penser à Augeas et ses « lenses », qui sont des parsers spécifiques aux différents formats de fichiers qui construisent des arbres de configuration à manipuler, propres à Augeas. Ils en parlent ici :
https://augeas.net/docs/lenses.html
Mais commence peut-être par la documentation générale pour comprendre le fonctionnement d’Augeas. Ça te parlera si tu connais XPath.
Au passage, j’ai essayé, et c’est toujours aussi galère à utiliser… en bidouillant, voilà ce que j’ai pu faire pour une démo interactive, sur ton deuxième exemple, disons appelé test.ini ::
(pour savoir pourquoi j’utilise le Lens puppet voir https://www.mail-archive.com/augeas-devel@redhat.com/msg04350.html )
# Python
Posté par abriotde (site web personnel, Mastodon) . Évalué à 0 (+0/-1).
Perso, je réserve bash au inits simple. Après dès que l'on veut aller plus loin le Python est bien plus puissant. Après l'inconvénient de Python ce sont les perfs… mais c'est tout relatif, tant que tu n'a pas 10 000 fichiers à modifier régulièrement, ça fait le job.
Je n'ai pas regarder, mais en Python, tu peux trouver pas mal de librairies pour tout faire. J'entends par là que si la regexp suffit tant mieux, mais si tu veux un parser, quelque soit le langage, tu trouvera.
Sous licence Creative common. Lisez, copiez, modifiez faites en ce que vous voulez.
Envoyer un commentaire
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.