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
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"
To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
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 :
:~$ perl -ne 'print if ($a!=1 && !m/^$/); $a=1; $a=0 i f (m/^$/)' /tmp/test fichier1 fichier4 fichier12 :~$
Tu peux aussi y "piper" la sortie d'une commande :
:~$ cat /tmp/test | perl -ne 'print if ($a!=1 && !m/^$/); $a=1; $a=0 if (m/^$/)' fichier1 fichier4 fichier12 :~$
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"
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact
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 i f (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"
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"
To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
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 :
:~$ perl -ne 'print if ($a!=1 && !m/^$/); $a=1; $a=0 i f (m/^$/)' /tmp/test fichier1 fichier4 fichier12 :~$
Tu peux aussi y "piper" la sortie d'une commande :
:~$ cat /tmp/test | perl -ne 'print if ($a!=1 && !m/^$/); $a=1; $a=0 if (m/^$/)' fichier1 fichier4 fichier12 :~$
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"
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact
Max
2006/6/28, Bayrouni :
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.
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 da ns le résultat le dernier grep recherche les lignes qui ne sont pas vide -> 1eres lignes des groupes
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.
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 da ns
le résultat
le dernier grep recherche les lignes qui ne sont pas vide -> 1eres
lignes des groupes
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 da ns le résultat le dernier grep recherche les lignes qui ne sont pas vide -> 1eres lignes des groupes
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
florent@jupiter:~$ perl -ne 'print if ($a!=1 && !m/^$/); $a=1; $a=0 if (m/^$/)' /tmp/test
fichier1
fichier4
fichier12
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"
To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact