[Linux] sed grep ou awk - remplace ment de chaine de caracteres
Daniel Huhardeaux
daniel.huhardeaux@::1
Ven 18 Oct 18:17:36 CEST 2024
Le 18/10/2024 à 17:59, Marc Chantreux a écrit :
> [...]
>> puisque le enabled suivant (et je suppose les autres) est également traité
>> alors qu'ils ne sont pas précédés du Repère, ici Terek4
> ahh mais t'avais dis que la clef commande était unique.
Mal exprimé alors, le couple Repère + commande est unique. Désolé
>
> bon. tu disais que la clef précédait directement le repère donc
>
> <<% sed -E ' /^ *Terek4:/ { n; s/true/false/ } '
> Terek4:
> enabled: true
> enabled: true
>
> si c'est pas le cas, on passe a awk
Moi j'ai ceci qui est fonctionnel:
sed '/Terek4:/{n;s/enabled:.*/enabled: true/}' config.yml
ton exemple est également fonctionnel, je l'ai adapté en
sed -E ' /^ *Terek4:/ { n; s/enabled:.*/enabled:\ false/ } ' config.yml
car peu importe l'état true ou false d'origine, je veux forcer à l'un de
ces deux états.
Il ne me reste plus qu'à trouver une solution plus propre sans toucher
au enable
mais simplement à supprimer l'état d'origine pour le remplacer par celui
désiré.
J'ai tenté un
sed -E ' /^ *Terek4:/ { n; s/enabled: [(true)(false)]/true/ } ' config.yml
c'est pas bon.
Un grand merci pour ton aide et ta solution.
-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <https://strasbourg.linuxfr.org/pipermail/linux/attachments/20241018/518d108e/attachment.htm>
Plus d'informations sur la liste de diffusion linux