Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2833 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  partie de liste

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

partie de liste

n°1616056
sidela
Posté le 27-09-2007 à 14:42:56  profilanswer
 

bonjour,
 
est-ce qu'il existe en perl un moyen simple d'obtenir la sous liste (b2 c3 d4) de la liste (a1 b2 c3 d4 e5) en spécifiant juste b et d par exemple ?
 
en awk c'est un truc du genre:  awk '/b/,/d/ {print $0}'  

mood
Publicité
Posté le 27-09-2007 à 14:42:56  profilanswer
 

n°1616063
anapajari
s/travail/glanding on hfr/gs;
Posté le 27-09-2007 à 14:50:06  profilanswer
 

pas exactement compris ce que tu voulais :)
tu veux récupérer uniquement les colonnes 2,3 et 4 de ton tableau?

Code :
  1. my @liste = ('a', 'b', 'c', 'd', 'e');
  2. my @b = @a[1..3];


ou alors tu veux récupérer uniquement les elements de ton tableau dont la valeur est comprise entre bX et dX?
A ce moment là regarde le post juste en dessous du tien et sers toi de map:
http://forum.hardware.fr/hfr/Progr [...] 8234_1.htm

n°1616089
matafan
Posté le 27-09-2007 à 15:14:45  profilanswer
 

Le truc que tu donnes en awk ne fait pas du tout ce que tu expliques en français. Ton morceau de awk il affiche toutes les lignes d'entrée comprise entre la première ligne qui contient un b, et la première ligne suivante qui contient un d. Rien à voir avec des listes.
 
Pour les listes, anapajari a répondu. Pour l'équivalent de ton morceau de awk, en perl ça donne :

perl -ne '(/b/ .. /d/) && print'

Message cité 1 fois
Message édité par matafan le 27-09-2007 à 15:16:51
n°1616092
sidela
Posté le 27-09-2007 à 15:22:06  profilanswer
 

anapajari a écrit :

pas exactement compris ce que tu voulais :)
tu veux récupérer uniquement les colonnes 2,3 et 4 de ton tableau?

Code :
  1. my @liste = ('a', 'b', 'c', 'd', 'e');
  2. my @b = @a[1..3];


ou alors tu veux récupérer uniquement les elements de ton tableau dont la valeur est comprise entre bX et dX?
A ce moment là regarde le post juste en dessous du tien et sers toi de map:
http://forum.hardware.fr/hfr/Progr [...] 8234_1.htm

merci pour ta réponse express  :)  
 
non en fait les premier et dernier élément de la sous liste contiennent un certain élément
 
par exemple avec la liste:
 
un deux
trois quatre
cinq six
sept huit
neuf dix
onze douze
 
je voudrais obtenir la partie de la liste contenue entre la ligne contenant "cinq" et la ligne contenant "dix", ce qui donne:
 
cinq six
sept huit
neuf dix
 
avec awk ça donnerait awk '/cinq/../dix/ {print $0}'
 
map ne me sert pas pour les éléments "entre" les 2 lignes
 
je voudrais y arriver sans faire de boucle...


Message édité par sidela le 27-09-2007 à 15:53:26
n°1616112
sidela
Posté le 27-09-2007 à 15:51:51  profilanswer
 

matafan a écrit :

Le truc que tu donnes en awk ne fait pas du tout ce que tu expliques en français. Ton morceau de awk il affiche toutes les lignes d'entrée comprise entre la première ligne qui contient un b, et la première ligne suivante qui contient un d. Rien à voir avec des listes.
 
Pour les listes, anapajari a répondu. Pour l'équivalent de ton morceau de awk, en perl ça donne :

perl -ne '(/b/ .. /d/) && print'


tout à fait je m'a trompé  :jap:  
 
encore désolé, c'est bien /b/ .. /d/, etsinon vous auriez une solution ?   :whistle:


Message édité par sidela le 27-09-2007 à 15:52:28
n°1616127
anapajari
s/travail/glanding on hfr/gs;
Posté le 27-09-2007 à 16:13:21  profilanswer
 

nan mais attends, en fait tu as pas une "liste" mais un fichier que tu lis c'est bien ça?
En fait je suis a peu près sur que tu as une liste uniquement parce que tu as bourriné un petit

Code :
  1. @lines = <FH>;


Et en fait tu veux le "morceau" de texte entre les deux mots, sous la forme d'un array par ligne non?
Je suis pas sur que tu prennes le problèmes par le bon bout, mais tu peux toujours faire un truc dans le genre:

Code :
  1. (join '#', @Liste ) =~ /(cinq.*?dix)/;
  2. my @sousListe = split /#/,$1;


Message cité 1 fois
Message édité par anapajari le 27-09-2007 à 16:14:07
n°1616137
sidela
Posté le 27-09-2007 à 16:24:34  profilanswer
 

anapajari a écrit :

nan mais attends, en fait tu as pas une "liste" mais un fichier que tu lis c'est bien ça?
En fait je suis a peu près sur que tu as une liste uniquement parce que tu as bourriné un petit

Code :
  1. @lines = <FH>;


Et en fait tu veux le "morceau" de texte entre les deux mots, sous la forme d'un array par ligne non?
Je suis pas sur que tu prennes le problèmes par le bon bout, mais tu peux toujours faire un truc dans le genre:

Code :
  1. (join '#', @Liste ) =~ /(cinq.*?dix)/;
  2. my @sousListe = split /#/,$1;



OK ça marche  :jap:  
 
c le justement le cas d'une liste qui m'intéresse, pour un texte je sais qu'il y a plus simple.
je pensais qu'il y avait un équivalent aussi simple que la commande awk "/a/../b/" mais apparemment c pas le cas
 
encore merci !

n°1616290
matafan
Posté le 27-09-2007 à 18:53:18  profilanswer
 

Ah ben dans ce cas, si, il y a plus simple :

my @sousListe = grep { (/cinq/ .. /dix/) } @liste;

n°1616306
sidela
Posté le 27-09-2007 à 19:52:51  profilanswer
 

matafan a écrit :

Ah ben dans ce cas, si, il y a plus simple :

my @sousListe = grep { (/cinq/ .. /dix/) } @liste;


[:athome]

Spoiler :

je suis un [:geec]


n°1616436
anapajari
s/travail/glanding on hfr/gs;
Posté le 28-09-2007 à 09:29:21  profilanswer
 

matafan a écrit :

Ah ben dans ce cas, si, il y a plus simple :

my @sousListe = grep { (/cinq/ .. /dix/) } @liste;



 :jap: j'ai trop pas le reflexe de me service de grep.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  partie de liste

 

Sujets relatifs
recuperer une liste[JSF] liste d'elements affichés en flow
Modifier la liste des types d'un parcourirListe dérouolante avec Mysql et javascript(resolu)
enregistrer une partie d'une page sous forme d'imageDOM et liste déroulante
Liste déroulante php/javascript et selectedCréer une visualisation graphique pas-à-pas d'une liste de valeur
Grouper en fonction d'une partie de champ datetimeedition zone de liste et access
Plus de sujets relatifs à : partie de liste


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR