partie de liste - Perl - Programmation
Marsh Posté le 27-09-2007 à 14:50:06
pas exactement compris ce que tu voulais
tu veux récupérer uniquement les colonnes 2,3 et 4 de ton tableau?
Code :
|
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
Marsh Posté le 27-09-2007 à 15:14:45
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' |
Marsh Posté le 27-09-2007 à 15:22:06
anapajari a écrit : pas exactement compris ce que tu voulais
|
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...
Marsh Posté le 27-09-2007 à 15:51:51
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.
|
tout à fait je m'a trompé
encore désolé, c'est bien /b/ .. /d/, etsinon vous auriez une solution ?
Marsh Posté le 27-09-2007 à 16:13:21
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 :
|
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 :
|
Marsh Posté le 27-09-2007 à 16:24:34
anapajari a écrit : nan mais attends, en fait tu as pas une "liste" mais un fichier que tu lis c'est bien ça?
|
OK ça marche
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 !
Marsh Posté le 27-09-2007 à 18:53:18
Ah ben dans ce cas, si, il y a plus simple :
my @sousListe = grep { (/cinq/ .. /dix/) } @liste; |
Marsh Posté le 27-09-2007 à 19:52:51
matafan a écrit : Ah ben dans ce cas, si, il y a plus simple :
|
Spoiler : je suis un |
Marsh Posté le 28-09-2007 à 09:29:21
matafan a écrit : Ah ben dans ce cas, si, il y a plus simple :
|
j'ai trop pas le reflexe de me service de grep.
Marsh Posté le 27-09-2007 à 14:42:56
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}'