[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