Traitement fichier avec SED

Bonjour,

je souihaite supprimer les deux premiere lignes d’un fichier, les lignes vides puis la derniere ligne depuis un script Bash. J’ai donc fait cela :

#! /bin/bash cat fichier.lst | sed '1,2d;/^$/d;$d' > fichierfinal.lst

Cela me supprime bien les deux premières lignes et les lignes vides mais pas la dernière et je ne comprends pas pourquoi car le $d devrait supprimer la derniére ligne non?

Une idée?

Merci

c’est parce que ton fichier finit par une ou des lignes vide, sed va d’abord supprimer la dernier ligne (vide) et ensuite supprimer les lignes vides, donc ta dernière ligne non vide reste…

je ne sais pas si on peut gérer la priorité des traitements dans sed mais si on ne peut pas alors tu peux bidouiller en faisant comme ça :

Cool merci c’est tout bon :wink: