Commande sed modification d'un fichier

Résolu/Fermé
misspass - 28 déc. 2011 à 16:07
 misspass - 28 déc. 2011 à 16:51
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...
A voir également:

1 réponse

dubcek Messages postés 18757 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 19 décembre 2024 5 623
28 déc. 2011 à 16:42
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
merci !
0