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

Re: filtrage d' un fichier texte



Le mercredi 28 juin 2006 22:42, Bayrouni a écrit :
> Bonsoir,
>
> 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.
>
> Dans mon exemple celà donnerait:
>
> fichier1
> fichier4
> fichier12
>
> Merci

Avec /tmp/test le fichier d'exemple :

florent@jupiter:~$ perl -ne 'print if ($a!=1 && !m/^$/); $a=1; $a=0 if (m/^$/)' /tmp/test
fichier1
fichier4
fichier12
florent@jupiter:~$

Tu peux aussi y "piper" la sortie d'une commande :

florent@jupiter:~$ cat /tmp/test | perl -ne 'print if ($a!=1 && !m/^$/); $a=1; $a=0 if (m/^$/)'
fichier1
fichier4
fichier12
florent@jupiter:~$

Bon, ce n'est pas du "bash pur", mais :
 - c'est utilisable dans un script shell
 - tu as 99,99% de chances de trouver perl sur une Debian, étant donné qu'il fait parti de la "base"

-- 
Florent

Attachment: pgpGcBLfXEjth.pgp
Description: PGP signature


Reply to: