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

Daniel Huhardeaux daniel.huhardeaux@::1
Ven 18 Oct 17:57:26 CEST 2024


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

règle le problème de la duplication, reste le pourquoi enabled: après 
birdseye: est également traité

Le 18/10/2024 à 17:30, Daniel Huhardeaux a écrit :
>
>
> Le 18/10/2024 à 17:05, Marc Chantreux a écrit :
>> sed -E '/Repere:/,$s/(^ *commande: )truc1/\1trucWOW/ ' <<%
>
> Non, pas tout à fait. Exemple concret:
>
> go2rtc:
>   ffmpeg:
>     mycodec: -codec:v libx264 -g:v 1 -preset:v superfast -tune:v 
> zerolatency -profile:v
>       main -level:v 4.1
> streams:
> Tere4:
> ffmpeg:http://user:pwd@192.168.1.161/videostream.cgi?rate=11#video=mycodec
>
> camera:
>   Terek4:
>     enabled:  true
>     ffmpeg:
>       inputs:
>         - path: rtsp://localhost:8554/Terek4
>           input_args: preset-rtsp-restream
>           roles:
>             - detect
>             - rtmp
>             - record
>     detect:
>       width: 2560
>       height: 1920
>     objects:
>       track:
>         - person
>     birdseye:
>       enabled:  true
>       order: 10
>
> Je veux changer le true en false afin d'obtenir
>   Terek4:
>      enabled: false
>
> sed -E ' /Terek4:/,$s/(^ *enabled: )/\1\ false/' config.yml
>
> mais j'obtiens
>
>   Terek4:
>     enabled:  falsefalse
>
> et aussi plus loin
>
>     birdseye:
>       enabled:  falsefalse
>       order: 10
>
> En clair: il ne remplace pas mais rajoute et ne s'arrête pas après 
> l'opération 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
>
> Encore un petit effort, tu es sur la bonne voie ;) Merci pour ce début 
> de solution.
>
> -- 
> Daniel
>
-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <https://strasbourg.linuxfr.org/pipermail/linux/attachments/20241018/e952c79d/attachment-0001.htm>


Plus d'informations sur la liste de diffusion linux