#1 Le 24/04/2023, à 13:51
- Nelio
[Bash] Remplacer une ligne via sed
Bonjour,
J'ai une petite question qui me turlupine, je suis entrain d'automatiser une install sur un serveur. Pour se faire, j'ai besoin de faire des modifications dans un fichier de configuration.
J'aurai besoin de modifier une ligne du type :
mon_ip = "une adresse aléatoire numérique" ('lip peut changer d'une VM à l'autre) en
mon_ip= "*"
Est ce que vous sauriez m'aider ? Quand je fais un sed -i 's/^mon_ip/mon_ip"*"/' log.file
J'ai un résultat du type : mon_ip="*" = "127.0.01"
Ce qui est logique vu que je n'encadre pas toute l'expression.
Voilà si jamais vous avez des idées, n'hésitez pas. Et si je n'ai pas été clair, pareil n'hésitez pas.
Merci pour votre aide par avance.
Hors ligne
#2 Le 24/04/2023, à 14:01
- Watael
Re : [Bash] Remplacer une ligne via sed
salut,
ici, tu ne remplaces que mon_ip, alors que tu veux remplacer toute la ligne mon_ip.*
ou alors, on garde une partie, et on ne remplace que le nécessaire :
sed -i 's/^\(mon_ip = \).*/\1 nouvelle adresse/' fichier
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#3 Le 24/04/2023, à 14:20
- Nelio
Re : [Bash] Remplacer une ligne via sed
Bonjour Watael,
Parfait, ça fonctionne. Merci beaucoup ! Il va falloir que je me plonge dans les expressions régulière, si jamais tu as de la bonne documentation ce serait cool.
Merci encore.
P.S : Pour les administrateurs, je suis désolé mais mon sujet a été créé en plusieurs fois, j'ai eu un souci lors de la validation j'ai appuyé plusieurs fois sur valider car rien ne semblait se passer.
Toutes mes excuses pour le désagrément, a priori je ne suis pas en mesure de les supprimer par moi même.
Hors ligne
#4 Le 24/04/2023, à 14:59
- Watael
Re : [Bash] Remplacer une ligne via sed
man 7 regex
?
puis le manuel de sed
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne