Suppression de la première occurence avec SED

Résolu/Fermé
(a)lex Messages postés 2 Date d'inscription jeudi 2 août 2012 Statut Membre Dernière intervention 2 août 2012 - Modifié par (a)lex le 2/08/2012 à 11:01
(a)lex Messages postés 2 Date d'inscription jeudi 2 août 2012 Statut Membre Dernière intervention 2 août 2012 - 2 août 2012 à 15:41
Bonjour,
Je cherche à supprimer de lignes dans un fichier avec la commande SED :

voici un exemple de mon fichier :
test1    
coucou    

test2    
coucou    

test3    
coucou    

test4    
coucou    

test1    
coucou    

test5    
coucou


ici je cherche à supprimer testx, puis la ligne coucou et enfin la ligne vide qui va derrière.
J'utilise la commande
sed '/test1/,/^$/ d'
ou
sed '/test1/,+2 d' 
qui marche bien sauf que mon fichier étant très très gros et cette commande étant répétée un grand nombre de fois, ça prend beaucoup de temps.

Je voudrai donc qu'il s'arrête de chercher des correspondances dès qu'il résout la première occurence.

j'ai essayé quelque chose du style :
sed '0,/test1/ {/test1/,+2 d}' 
qui ne fonctionne pas puisque il ne peut prendre en compte la ligne coucou et la ligne vide dans son traitement. L'idéal serai une commande du style
sed '0,/test1/+2 {/test1/,+2 d}
mais sed ne l'interprète absolument pas.

Je précise que je cherche à accélérer le traitement de la commande (le deuxième test1 dans le fichier sert à savoir si la commande a parcouru le reste du fichier), donc si on doit passer par plusieurs boucles sed ou du grep en plus, ça risque au contraire de ralentir le traitement...

Merci d'avance, j'espère que vous réussirez à trouver une astuce...
A voir également:

3 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
2 août 2012 à 12:12
Salut,

sed  '0,/test1/{/test1/{N;N;d}}'
1
synopsis8 Messages postés 1364 Date d'inscription dimanche 15 mars 2009 Statut Membre Dernière intervention 1 juin 2013 243
2 août 2012 à 11:01
0
(a)lex Messages postés 2 Date d'inscription jeudi 2 août 2012 Statut Membre Dernière intervention 2 août 2012
2 août 2012 à 15:41
Yes ! Impeccable ! Merci beaucoup
0