[Linux] sed grep ou awk - remplace ment de chaine de caracteres

Marc Chantreux mc@::1
Ven 18 Oct 17:59:40 CEST 2024


On Fri, Oct 18, 2024 at 05:30:25PM +0200, Daniel Huhardeaux wrote:
> 
>     sed -E ' /Repere:/,$s/(^ *commande: )truc1/\1trucWOW/ ' <<%
> Non, pas tout à fait. Exemple concret

sisi!

> sed -E ' /Terek4:/,$s/(^ *enabled: )/\1\ false/' config.yml

mal adapté donc ça casse.

<<% sed -E ' /^ *Terek4:/,$s/(^ *enabled: *).*/\1\ false/'
    enabled: true

> 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.

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

-- 
Marc Chantreux
Pôle CESAR (Calcul et services avancés à la recherche)
Université de Strasbourg
14 rue René Descartes,
BP 80010, 67084 STRASBOURG CEDEX
03.68.85.60.79



Plus d'informations sur la liste de diffusion linux