Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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!!! smile


In hoc signo vinces.

Hors ligne