#1 Le 30/07/2014, à 12:18
- chiron
[Résolu] Filtrer des blocs de texte délimités.
Bonjour à tous.
J'ai un fichier toto.txt sous la forme suivante:
DEBUT BLOC
texte555
rule=1
texte666
DEBUT BLOC
texte 888
rule=2
texte 666
texte 444
texte222
DEBUT BLOC
texte444787
texte55879
texte888749
rule=1
- Dans le fichier les blocs commencent toujours par "DEBUT BLOC" et se finissent par une ligne vide
- le nombre de lignes à l'intérieur du bloc est variable
Je cherche par exemple à afficher uniquement les blocs contenant "rule=1"
Je pourrais passer par un grep si je n'avais pas cette longueur de bloc variable...
Si une bonne âme passe par là... ;-)
Dernière modification par chiron (Le 31/07/2014, à 19:56)
In hoc signo vinces.
Hors ligne
#2 Le 30/07/2014, à 15:44
- Postmortem
Re : [Résolu] Filtrer des blocs de texte délimités.
Salut,
Avec awk, on peut choisir la ligne vide comme délimiteur d'enregistrement :
awk 'BEGIN{RS=""; FS="\n"} /rule=1/' fichier
Par contre, j'ai pas testé !
Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »
Hors ligne
#3 Le 30/07/2014, à 16:33
- pingouinux
Re : [Résolu] Filtrer des blocs de texte délimités.
@Postmortem #2 : J'ai testé, c'est bon, et tu peux même simplifier, car RS="" => FS="\n" (en plus de la valeur donnée explicitement à ce que contient déjà FS).
awk 'BEGIN{RS=""} /rule=1/' fichier
Édité : Correction du commentaire
Dernière modification par pingouinux (Le 01/08/2014, à 07:57)
Hors ligne
#4 Le 31/07/2014, à 19:55
- chiron
Re : [Résolu] Filtrer des blocs de texte délimités.
Merci beaucoup! It rocks!!!
In hoc signo vinces.
Hors ligne