[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: filtrage d' un fichier texte



2006/6/28, Bayrouni <bayrouni@brutele.be>:
J'ai un fichier contenant des groupes de lignes, les groupes
étant séparés entre eux par une ligne vide.
Voici un exemple:

fichier1
fichier2
fichier3

fichier4
fichier23


fichier12
fichier442
fichier388
fichier543

Comment faire en bash pour ne retenir que la première ligne
de chaque groupe de lignes.

cat fichier | grep -A 1 '^$' | tr -d '\-' | grep -v '^$'

petite explication :
le 1er grep recherche les lignes vides ('^$'), et affiche la ligne
suivante (-A 1), donc là on obtient en plus la 1ère ligne d'un groupe
car toujours précédée d'une ligne vide
tr -d '\-' sert à supprimer les délimiteurs '--' inséré par grep dans
le résultat
le dernier grep recherche les lignes qui ne sont pas vide -> 1eres
lignes des groupes



Reply to: