Bonjour Marc
En effet, et on voit dans les docs que sed ne supporte pas le mode
Ungreedy. Je m'attendais à un /U comme en PHP, mais cela ne fonctionne pas.
Snif !
Merci de ta recherche !
Dom
Le 13/01/2016 21:52, marc.terrier@??? a écrit :
> Salut Dom,
>
> Si tu veux que sed s'arrête la première fois qu'il trouve la marque de fin de ce qui t'intéresse, l'idée, c'est de faire en sorte qu'il ne soit pas trop gourmand, pas trop "greedy" (c'est le terme).
>
> À partir de là (quand on connaît le terme kivabien), Google est ton ami : "sed turn off greedy" ou "sed non greedy".
>
> http://compgroups.net/comp.unix.shell/regular-expressions-non-greedy/496948, par exemple.
>
> Cdlt,
>
> Marc
>
> ----- Mail original -----
> De: "Dominique Fournier" <dominique@???>
> À: guilde@???
> Envoyé: Mercredi 13 Janvier 2016 16:51:20
> Objet: Suppression de bloc dans un fichier de configuration
>
> Bonjour
>
> J'ai un fichier de configuration de la forme :
> <IfUser user1>
> Contenu
> </IfUser>
>
> <IfUser user2>
> Contenu
> </IfUser>
>
> <IfUser user3>
> Contenu
> </IfUser>
>
> Je souhaite supprimer le bloc concernant l'utilisateur "user2".
> Actuellement, je fais :
> sed -i "/<IfUser $util>/,/<\/IfUser>\n/d" fichier.conf
>
> Mais cela ne fonctionne pas : cela efface depuis le debut du bloc user2
> jusqu'à la fin du fichier.
>
> Avez-vous une regex (ou une autre méthode simple) pour ne supprimer que
> le bloc du milieu ?
>
> Merci et bonne soirée
>
> Dom
>