Commande sed modification d'un fichier

Résolu
misspass -  
 misspass -
Bonjour,

je cherche à modifier un fichier du type :

12:921:294 [ABC] blabla
12:214:324 [ABC] blablabla
lalala
tralala bla bla bla
12:343:457 [DEF] blabla
testtest
blabla
12:343:457 [GHI] blabla
testtest
32:543:455 [ABC] blabla
12:214:327 [ABC] blablabla
lalala
tralala bla bla bla
12:343:457 [GHI] blabla

Pour ne garder que les lignes qui contiennent [ABC] et les lignes qui n'ont pas 3 lettres entre crochet mais qui sont en dessous d'une ligne contenant [ABC].
J'aurais donc au final :

12:921:294 [ABC] blabla
12:214:324 [ABC] blablabla
lalala
tralala bla bla bla
32:543:455 [ABC] blabla
12:214:327 [ABC] blablabla
lalala
tralala bla bla bla

Je pense que c'est possible avec la commande sed mais je n'y arrive pas...

1 réponse

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    avec awk
    $ awk '/\[ABC\]/ {x=1}  /\[.*\]/ &&  $0 !~ /ABC/ {x=0} x' fichier
    12:921:294 [ABC] blabla
    12:214:324 [ABC] blablabla
    lalala
    tralala bla bla bla
    32:543:455 [ABC] blabla
    12:214:327 [ABC] blablabla
    lalala
    tralala bla bla bla
    $ 
    
    1
    1. misspass
       
      merci !
      0