Sed avant derniere ligne

Bonjour,

J’ai un fichier contenant :

Je cherche à supprimer toute les lignes de [toto] à [test] mais sans supprimer [test]
en gros je veux supprimer les lignes de [toto] à la ligne précédent [test]
j’utilise pour ça sed, car j’ai plusieurs fichiers et les lignes ne sont jamais aux même endroits :

Malheureusement cette commande supprime également la ligne [test].

Auriez-vous une idée ?

Merci d’avance,
Amicalement,
Fabien493

Tu peux utiliser :

pour récupérer toutes les lignes de “[test]” à la fin du fichier.

Bonjour kna,

Je te remercie pour l’info, mais le problème c’est que les lignes que je veux supprimées ne sont jamais aux même endroits dans les fichiers.
De plus comme je vais centralisé cette commande dans un script, il faudrait tout simplement l’utilisé en variable du style :

En fait chaque [ ] correspond à une section dans plusieurs fichiers qui contiennent plusieurs 10aines de définitions.
Si j’utilise le script c’est parce que certaine section vont être supprimée, et donc j’ai besoins de le supprimer du fichier mais simplement la définition. je me demande si en couplant grep à sed ça marcherais pas ?

Amicalement,
Fabien493

Tu as toujours une ligne vide entre chaque section ?

Si c’est le cas, tu peux faire :

voire même :

(pour prendre en compte le cas où la ligne ne soit pas vraiment vide, mais contient des espaces ou des tabulations)

Sinon, dans d’autres langages, tu devrais trouver facilement des fonctions/librairies pour parser des fichiers INI de ce type.

ça fonctionne impeccablement, juste une petite modification :

Merci infiniment :slightly_smiling:

Amicalement,
Fabien493