Awk-perl
Résolu/Fermé
karim_khouja
Messages postés
50
Date d'inscription
lundi 6 avril 2009
Statut
Membre
Dernière intervention
16 février 2010
-
6 avril 2009 à 16:20
karim_khouja Messages postés 50 Date d'inscription lundi 6 avril 2009 Statut Membre Dernière intervention 16 février 2010 - 6 mai 2009 à 16:54
karim_khouja Messages postés 50 Date d'inscription lundi 6 avril 2009 Statut Membre Dernière intervention 16 février 2010 - 6 mai 2009 à 16:54
A voir également:
- Awk-perl
- Denon perl pro test - Accueil - Audio
- Ps awk ✓ - Forum Debian
- Active perl - Télécharger - Édition & Programmation
- Awk separateur ✓ - Forum Shell
- Awk powershell - Forum Shell
75 réponses
karim_khouja
Messages postés
50
Date d'inscription
lundi 6 avril 2009
Statut
Membre
Dernière intervention
16 février 2010
3
10 avril 2009 à 12:41
10 avril 2009 à 12:41
j'ai parcouru le tableau fec et j'ai fait une condition
si $fec[$i=1]-$fec[$i] == 33 car je cherche le premier saut de 33 pas car le tableau contient des numero consecutive et puis il fait un saut de 33 chaque fois
expl @fec: [1,2,3,4,5,6,7,8,41,42,43,44,45,46,47,48,81,82....]
j'ai mis [1,41,81...] dans un tableau que j'ai appeler @A se sont les tetes de Matrice
j'ai initialiser une valeur $SNBL = $A[5] ==> je vais prendre une tete de matrice quelquonque du tableau @A
maintenant je veux parcourir le tableau @rtp et chercher dans sont contenu une valeur egale a $A[5]
il va le trouver surement
mais je veux avoir dans un dernier tableau resultat toutes les valeurs allant de $SNBL jusqu'a $SNBL+39
ce tableau contient tout les elements de la matrice rtp mais a cette matrice on va trouver aussi 8 ou plus rtp perdus
normalement je vais trouver 32 valeurs mais pas toujours
si $fec[$i=1]-$fec[$i] == 33 car je cherche le premier saut de 33 pas car le tableau contient des numero consecutive et puis il fait un saut de 33 chaque fois
expl @fec: [1,2,3,4,5,6,7,8,41,42,43,44,45,46,47,48,81,82....]
j'ai mis [1,41,81...] dans un tableau que j'ai appeler @A se sont les tetes de Matrice
j'ai initialiser une valeur $SNBL = $A[5] ==> je vais prendre une tete de matrice quelquonque du tableau @A
maintenant je veux parcourir le tableau @rtp et chercher dans sont contenu une valeur egale a $A[5]
il va le trouver surement
mais je veux avoir dans un dernier tableau resultat toutes les valeurs allant de $SNBL jusqu'a $SNBL+39
ce tableau contient tout les elements de la matrice rtp mais a cette matrice on va trouver aussi 8 ou plus rtp perdus
normalement je vais trouver 32 valeurs mais pas toujours
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
10 avril 2009 à 14:33
10 avril 2009 à 14:33
Re,
Ben, il suffit de prendre des tranches de tableaux en ce cas.
Il suffit de faire par exemple
106485010510997108
Ben, il suffit de prendre des tranches de tableaux en ce cas.
Il suffit de faire par exemple
my @test = @A[$NBL .. ($NBL+39)];--
106485010510997108
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
10 avril 2009 à 17:50
10 avril 2009 à 17:50
Re,
Si j'ai bien compris c'est ça que tu veux (le résultat en gras)
Si j'ai bien compris c'est ça que tu veux (le résultat en gras)
lami20j@debian:~$ cat tranche.pl #!/usr/bin/perl use strict;use warnings; my @fec=(1,2,3,4,5,6,7,8,41,42,43,44,45,46,47,48,81,82,83,84,85,86,87,88); my $test=41; my $i; foreach (@fec){ ++$i; last if($_==$test); } my @control=@fec[--$i .. $i + 7]; print "@control\n"; __END__ lami20j@debian:~$ perl tranche.pl 41 42 43 44 45 46 47 48 lami20j@debian:~$
karim_khouja
Messages postés
50
Date d'inscription
lundi 6 avril 2009
Statut
Membre
Dernière intervention
16 février 2010
3
11 avril 2009 à 07:58
11 avril 2009 à 07:58
nn c'est presque
mais je voudrai avoir : 41 42 43 44 45 46 47 48...79 du tableau @rtp
c'est a dire du [41 a 41+39]
malgre qu'il y a des numero dans ce intervall qui n'existe pas (8 numero perdu ou plus parfois)
mais je voudrai avoir : 41 42 43 44 45 46 47 48...79 du tableau @rtp
c'est a dire du [41 a 41+39]
malgre qu'il y a des numero dans ce intervall qui n'existe pas (8 numero perdu ou plus parfois)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
11 avril 2009 à 08:06
11 avril 2009 à 08:06
Salut,
mais je voudrai avoir : 41 42 43 44 45 46 47 48...79 du tableau @rtp
c'est a dire du [41 a 41+39]
Qui ou quoi t'empêche de prendre mon exemple et faire (au lieu de @fec, tu mets @rtp)
mais je voudrai avoir : 41 42 43 44 45 46 47 48...79 du tableau @rtp
c'est a dire du [41 a 41+39]
Qui ou quoi t'empêche de prendre mon exemple et faire (au lieu de @fec, tu mets @rtp)
@rtp[--$i .. $i + 38];?!!
karim_khouja
Messages postés
50
Date d'inscription
lundi 6 avril 2009
Statut
Membre
Dernière intervention
16 février 2010
3
13 avril 2009 à 15:07
13 avril 2009 à 15:07
GTK2 est mon bibliotheque graphique de perl
j'ai remarqué que perl n'accepte pas cette instruction : $label$i
en fait je suis entrain de construire des label dynamiquement a l'aide d'une boucle for
mais je rencontre une erreur de compilation
j'ai remarqué que perl n'accepte pas cette instruction : $label$i
en fait je suis entrain de construire des label dynamiquement a l'aide d'une boucle for
mais je rencontre une erreur de compilation
karim_khouja
Messages postés
50
Date d'inscription
lundi 6 avril 2009
Statut
Membre
Dernière intervention
16 février 2010
3
13 avril 2009 à 15:30
13 avril 2009 à 15:30
ou bien autrement :
supposant j'ai ce tableau : 1,2,3,7,8,12
je veux avoir un tableau comme ca 1,2,3,0,0,0,7,8,0,0,0,12
le contenu du tableau est trié deja
et je veux avoir au lieu des numeros perdus des zeros
supposant j'ai ce tableau : 1,2,3,7,8,12
je veux avoir un tableau comme ca 1,2,3,0,0,0,7,8,0,0,0,12
le contenu du tableau est trié deja
et je veux avoir au lieu des numeros perdus des zeros
karim_khouja
Messages postés
50
Date d'inscription
lundi 6 avril 2009
Statut
Membre
Dernière intervention
16 février 2010
3
13 avril 2009 à 15:51
13 avril 2009 à 15:51
s'il te plais Mr Lami je te jure que c'est tres urgent!!
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
13 avril 2009 à 16:40
13 avril 2009 à 16:40
Salut,
J'en suis sûr que c'est urgent. Toutefois avec une telle invocation, tu risques plutôt de ne pas avoir une réponse.
N'oublie pas que nous sommes de bénévoles, et chacun a aussi une vie à côté.
Tu as vraiment de la chance d'avoir la réponse assez rapidement.
J'en suis sûr que c'est urgent. Toutefois avec une telle invocation, tu risques plutôt de ne pas avoir une réponse.
N'oublie pas que nous sommes de bénévoles, et chacun a aussi une vie à côté.
Tu as vraiment de la chance d'avoir la réponse assez rapidement.
lami20j@debian:~$ cat tableau_zero.pl #!/usr/bin/perl use strict;use warnings; my $i; my @tab=(1,2,3,7,8,12,20,24,29); my @res=push my @tmp,shift @tab; while(@tab){ push @tmp,(my $e=shift @tab); my $decalage = ($e - $tmp[$i++]); if($decalage>1){push @res,0 for 1..$decalage - 1} push @res,$e; } @tmp=(); print "@res\n"; __END__ lami20j@debian:~$ perl tableau_zero.pl 1 2 3 0 0 0 7 8 0 0 0 12 0 0 0 0 0 0 0 20 0 0 0 24 0 0 0 0 29
karim_khouja
Messages postés
50
Date d'inscription
lundi 6 avril 2009
Statut
Membre
Dernière intervention
16 février 2010
3
13 avril 2009 à 18:06
13 avril 2009 à 18:06
merci infinement
tu es genial Mr Lami
et je m'excuse , je sais que je t'ai dérangé pas mal de fois
et c'est grace a dieu qui m'a offert une telle personne geniale et gentille pour m'aider et pour me permettre de terminer cette tache.
merci bcp mille fois
tu es genial Mr Lami
et je m'excuse , je sais que je t'ai dérangé pas mal de fois
et c'est grace a dieu qui m'a offert une telle personne geniale et gentille pour m'aider et pour me permettre de terminer cette tache.
merci bcp mille fois
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
14 avril 2009 à 14:10
14 avril 2009 à 14:10
Salut,
Je n'ai pas trop aimé la 1ère version.
Voici une autre aproche (merci à jipicy pour les tests
Je n'ai pas trop aimé la 1ère version.
Voici une autre aproche (merci à jipicy pour les tests
lami20j@debian:~$ cat tableau_zero2.pl #!/usr/bin/perl use strict;use warnings; my @tab=(1,2,3,7,8,12,20,24,29); my @res=(0) x $tab[$#tab]; $res[$_-1]=$_ for @tab; print "@tab\n"; print "@res\n"; lami20j@debian:~$ perl tableau_zero2.pl ro2.pl 1 2 3 7 8 12 20 24 29 1 2 3 0 0 0 7 8 0 0 0 12 0 0 0 0 0 0 0 20 0 0 0 24 0 0 0 0 29
karim_khouja
Messages postés
50
Date d'inscription
lundi 6 avril 2009
Statut
Membre
Dernière intervention
16 février 2010
3
21 avril 2009 à 18:14
21 avril 2009 à 18:14
salut Mr Lami pouvez vous m'aider une derniere fois ?
j'ai deux tableaux
exp
@a=(1,2,3,4,5,6,7,8,9,10)
@b=(3,5,6,7)
je veux eliminer le contenu de @b du @a
c a d @a doit contenir @a=(1,2,4,8,9,10)
j'ai deux tableaux
exp
@a=(1,2,3,4,5,6,7,8,9,10)
@b=(3,5,6,7)
je veux eliminer le contenu de @b du @a
c a d @a doit contenir @a=(1,2,4,8,9,10)
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
21 avril 2009 à 18:30
21 avril 2009 à 18:30
Salut,
une derniere fois ?
Si je comprends bien, si jamais tu as encore de questions je ne te répondrai plus. ;-DDDDD
une derniere fois ?
Si je comprends bien, si jamais tu as encore de questions je ne te répondrai plus. ;-DDDDD
lami20j@debian:~/trash/ccm_perl$ cat ccm_que_dans_a.pl #!/usr/bin/perl use strict;use warnings; my (@a,@b,@que_dans_a,%dans_b); @a=(1,2,3,4,5,6,7,8,9,10); @b=(3,5,6,7); @dans_b{@b}=(); for(@a){push @que_dans_a,$_ unless exists $dans_b{$_}}; print "@a\n@b\n"; print "@que_dans_a\n"; __END__ lami20j@debian:~/trash/ccm_perl$ perl ccm_que_dans_a.pl 1 2 3 4 5 6 7 8 9 10 3 5 6 7 1 2 4 8 9 10
karim_khouja
Messages postés
50
Date d'inscription
lundi 6 avril 2009
Statut
Membre
Dernière intervention
16 février 2010
3
21 avril 2009 à 19:21
21 avril 2009 à 19:21
my (@mat_ERR, %dans_sans_err);
@dans_sans_err{@num_Mat_sans_err}=();
for (@num_Mat_errAA){push @mat_ERR, $_ unless exists $dans_sans_err{$_}};
print"@mat_ERR\n";
il m'a donner un resultat inverse je sais pas pourquoi
sachant que @a=@num_Mat_errAA et @b=@dans_sans_err
merci Mr mais je t'ai déranhé énormement
t'es tres tes gentil
Merci bcp
@dans_sans_err{@num_Mat_sans_err}=();
for (@num_Mat_errAA){push @mat_ERR, $_ unless exists $dans_sans_err{$_}};
print"@mat_ERR\n";
il m'a donner un resultat inverse je sais pas pourquoi
sachant que @a=@num_Mat_errAA et @b=@dans_sans_err
merci Mr mais je t'ai déranhé énormement
t'es tres tes gentil
Merci bcp
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
21 avril 2009 à 19:56
21 avril 2009 à 19:56
Re,
Attention, @b c'est @num_Mat_sans_err
@dans_sans_err n'est pas un tableau. En revanche on a le hash %dans_sans_err
Bref,
@a il faut le remplacer avec @num_Mat_errAA
@b il faut le remplacer avec @num_Mat_sans_err
Donc les tableau que tu compares sont
@num_Mat_errAA et @num_Mat_sans_err
et pas
@num_Mat_errAA et @dans_sans_err
Attention, @b c'est @num_Mat_sans_err
@dans_sans_err n'est pas un tableau. En revanche on a le hash %dans_sans_err
Bref,
@a il faut le remplacer avec @num_Mat_errAA
@b il faut le remplacer avec @num_Mat_sans_err
Donc les tableau que tu compares sont
@num_Mat_errAA et @num_Mat_sans_err
et pas
@num_Mat_errAA et @dans_sans_err
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
21 avril 2009 à 19:59
21 avril 2009 à 19:59
Re,
Pour vérifier il suffit d'afficher les tableaux
Pour vérifier il suffit d'afficher les tableaux
print "@num_Mat_errAA\n"; print "@num_Mat_sans_err\n"; print "@mat_ERR\n";
karim_khouja
Messages postés
50
Date d'inscription
lundi 6 avril 2009
Statut
Membre
Dernière intervention
16 février 2010
3
22 avril 2009 à 15:20
22 avril 2009 à 15:20
salut Mr Lami
merci pour la reponse d'hier j'été trop fatigué c'est pourquoi il m'a paru que les resultats sont fausse mais j'ai mis le bon code dés le début.
j'ai un probleme Mr
supposons que j'ai un tableau
my @Tfin=(1,2,3,4,5,6,7,8,9,0,0,0,0,0,0,0,0,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40, 41,42,43,44,45,46,47,48,49,50,51,52,0,0,55,56,57,58,59,60,61,62,63,0,0,0,0,0,0,0,0,72,73,74,75,76,77,78,79,80);
je vais analyser 40 element par 40 a part : (analyser le tableau du [1 .. 40] puis [41..80]...)
je trouve 8 et seulement 8 zeros consécutives dans chaque 40 elements on affecte a un autre tableau un numero d'indice de sous tableau expl: pour les 40 premiere leurs indice est 40/40=1 , le deuxieme 80/40=2, ...
ici le premier sous tableau est faux car on a seulement 8 zeros consecutives
tandisque le deuxieme sous tableau est vrai car il possedes 8 zero consécutives + 2 autres zero
je sais que je m'exprime mal mais si jamais vous avez besoin d'une information
please n'hesitez pas
je vous en pris Mr
Merci infinement
merci pour la reponse d'hier j'été trop fatigué c'est pourquoi il m'a paru que les resultats sont fausse mais j'ai mis le bon code dés le début.
j'ai un probleme Mr
supposons que j'ai un tableau
my @Tfin=(1,2,3,4,5,6,7,8,9,0,0,0,0,0,0,0,0,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40, 41,42,43,44,45,46,47,48,49,50,51,52,0,0,55,56,57,58,59,60,61,62,63,0,0,0,0,0,0,0,0,72,73,74,75,76,77,78,79,80);
je vais analyser 40 element par 40 a part : (analyser le tableau du [1 .. 40] puis [41..80]...)
je trouve 8 et seulement 8 zeros consécutives dans chaque 40 elements on affecte a un autre tableau un numero d'indice de sous tableau expl: pour les 40 premiere leurs indice est 40/40=1 , le deuxieme 80/40=2, ...
ici le premier sous tableau est faux car on a seulement 8 zeros consecutives
tandisque le deuxieme sous tableau est vrai car il possedes 8 zero consécutives + 2 autres zero
je sais que je m'exprime mal mais si jamais vous avez besoin d'une information
please n'hesitez pas
je vous en pris Mr
Merci infinement
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
22 avril 2009 à 17:13
22 avril 2009 à 17:13
Salut,
Tu veux faire quoi?
Afficher faux quand il y a seulement 8 zéros et vrai quand il plus de huit zéros?
Tu veux faire quoi?
Afficher faux quand il y a seulement 8 zéros et vrai quand il plus de huit zéros?
lami20j@debian:~/trash$ cat vraifaux.pl #!/usr/bin/perl use strict;use warnings; my @Tfin=(1,2,3,4,5,6,7,8,9,0,0,0,0,0,0,0,0,18,19, 20,21,22,23,24,25,26,27,28,29, 30,31,32,33,34,35,36,37,38,39, 40,41,42,43,44,45,46,47,48,49, 50,51,52,0,0,55,56,57,58,59, 60,61,62,63,0,0,0,0,0,0,0,0, 72,73,74,75,76,77,78,79,80); print "FAUX\n" if (scalar grep { /^0$/ } @Tfin[0 .. 39]) == 8; print "VRAI\n" if (scalar grep { /^0$/ } @Tfin[40 .. 79]) == 10; __END__ lami20j@debian:~/trash$ lami20j@debian:~/trash$ perl vraifaux.pl FAUX VRAI
karim_khouja
Messages postés
50
Date d'inscription
lundi 6 avril 2009
Statut
Membre
Dernière intervention
16 février 2010
3
22 avril 2009 à 17:41
22 avril 2009 à 17:41
non quand il y a 8 zero et les zero sont consécutives afficher faut
exemple :
1,2,3,4,5,6,7,8,9,0,0,0,0,0,0,0,0,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40 faut
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,0,0,0,0,0,0,0,0,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40 faut
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,0,0,0,0,0,0,0,0 faut
la position n'importe mais les zeros doit etre 8 et consecutives
merci bcp
exemple :
1,2,3,4,5,6,7,8,9,0,0,0,0,0,0,0,0,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40 faut
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,0,0,0,0,0,0,0,0,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40 faut
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,0,0,0,0,0,0,0,0 faut
la position n'importe mais les zeros doit etre 8 et consecutives
merci bcp
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
22 avril 2009 à 17:45
22 avril 2009 à 17:45
Re,
Je ne comprends pas.
Montre ton exemple sur le tableau que tu m'as donné.
Je ne comprends pas.
Montre ton exemple sur le tableau que tu m'as donné.
my @Tfin=(1,2,3,4,5,6,7,8,9,0,0,0,0,0,0,0,0,18,19, 20,21,22,23,24,25,26,27,28,29, 30,31,32,33,34,35,36,37,38,39, 40,41,42,43,44,45,46,47,48,49, 50,51,52,0,0,55,56,57,58,59, 60,61,62,63,0,0,0,0,0,0,0,0, 72,73,74,75,76,77,78,79,80);