Awk-perl

Résolu
karim_khouja Messages postés 50 Date d'inscription   Statut Membre Dernière intervention   -  
karim_khouja Messages postés 50 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
j'ai un fichier hexadécimal le séparateur de chaque mot hexa et "|"
je voulais extraire des mots specifiques

en fait, c'est fichier tres long qui ressemble a celui de Wireshark l'or d'un enregistrement *.txt

je voulais tester $44

cat /home/../Bureau/hexa.txt | awk -F| `BEGIN {NR=4; int Nseq=0;int num=0;}
{

if( $44!="60")
{num = NR; Nseq =strcat($45,$46); NR=NR+32;}

else
{num = NR; NR=NR+33;}
}
END {print num " " Nseq}`>>/home/../Bureau/rtp.txt

ce code je veux l'introduire dans le script perl
puis-je le faire et comment ?
y a t-il des fautes dans ce bout de code svp?
merci bcp
A voir également:

75 réponses

karim_khouja Messages postés 50 Date d'inscription   Statut Membre Dernière intervention   3
 
je dois parcourir mon tableau 40 part 40 (chaque 40 a part) ( chaque 40 constitut une matrice c'est une chose comme ca)

il doit m'afficher :
*)la matrice 1 est fausse car j'ai 8 zeros consecutives et pas d'autres zeros

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



*)la matrice 2 est vrai car j'ai huit zero consécutive oui mais une fois je trouve d'autres zeros l'analyse devienne positive

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
0
karim_khouja Messages postés 50 Date d'inscription   Statut Membre Dernière intervention   3
 
Mr est ce que vous m'avez compris?
je te jure que je me suis trés pressé du temps
demain je vais présenter ma premiere partie et elle manque que cette condition
0
karim_khouja Messages postés 50 Date d'inscription   Statut Membre Dernière intervention   3
 
les huits zero ok mais la conditions qu'ils soient consécutives?
c ca le probleme?
0
karim_khouja Messages postés 50 Date d'inscription   Statut Membre Dernière intervention   3
 
j'ai fait ce que tu m'a appris a faire mais reste une condition comment verifier que les zeros sont consécutives?


# !/usr/bin/perl -w

use strict;
use warnings;
my @A;
my @Tfin =(1,2,3,4,5,6,7,8,9,10,0,0,0,0,0,0,0,0,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,0,0,0,0,5,0,0,0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80);


for (my $i=0; $i<=$#Tfin; $i+=40)
{
my $b=($i/40)+1;
push @A,$b if (scalar grep {/^0$/} @Tfin[$i..$i+39])==8;
}
print"@A\n";
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Re,

Ce n'est pas comme ça que je t'ai appris ;-)))

Attention, au contexte.
C'est vraiement inutile et tordue de faire my $b=($i/40)+1; quand on a déjà les éléments de tableau.

La solution que je t'ai donné traite les éléments de tableau quelque soit leur valeur.
Dans ton cas tu divises l'indice de tableau avec 40 et tu lui ajoute 1.
Mais ça ne marchera pas si tu auras d'autres valeurs dans le tableau.
Bref tu traites les valeurs.
C'est un peu comme sous Excel, travailler avec les cellules par adresse ou par contenu.
Une approche par adresse permet de rendre la solution acceptable quelque soit le contenu ce qui n'est pas le cas si on utilise des valeurs constantes.

Ma variante prends deux tranches de tableau, les 40 premiers éléments et la suite de 40 et ensuite teste s'il y a des zéros.

Le traitement des zéro consecutives suivis d'autre zéro peut poser des problèmes si on pense aux dizaines.
Et ton tableau et censé d'avoir que des données jusqu'à 80, ou il peut avoir des données plus grand que 100?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
karim_khouja Messages postés 50 Date d'inscription   Statut Membre Dernière intervention   3
 
je vous en pris Mr Lami c'est la derniere aide
please
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

Tu l'as déjà dit une fois que c'est la dernière. Ne dit pas que je ne t'ai pas averti ;-)))
Je vais regarde ce soir, mais je ne promets rien.
0
niconoe Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
C'est quand meme clairement mieux en perl :)
0
karim_khouja Messages postés 50 Date d'inscription   Statut Membre Dernière intervention   3
 
oui mes données arrivent a 65530
j'ai pas arrivé a un resultat fonctionnable jusqu'a maintenant
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Re,

Puisque tu travailles avec les indices.
Utilises plutôt mon code.
0
karim_khouja Messages postés 50 Date d'inscription   Statut Membre Dernière intervention   3
 
j'ai arrivé maintenant a un petit resultat
mais si ca va marcher il faut que :

si je stocke dans un tableau par exemple les indices 1,3,6
il faut que j'efface les premiers 40 elements du tableau et les troisiemes 40 elements et les 6ieme 40 elements

y a t-il une solution facile?
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Re,

Il y toujours des solutions, mais la facilité d'une solution depends de la compréhension du problème.
Je n'ai fait que te donner des morceaux de code.
0
karim_khouja Messages postés 50 Date d'inscription   Statut Membre Dernière intervention   3
 
dans toute les cas Merci beaucoup Mr Lami tu m'as bcp aidé
je te remercie infinement
ça y est j'ai trouver une solution maintenant et elle fonctionne correctement
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Re,

ça y est j'ai trouver une solution maintenant et elle fonctionne correctement
C'est parfait. Donc je n'ai plus rien à faire ;-))
0
karim_khouja Messages postés 50 Date d'inscription   Statut Membre Dernière intervention   3
 
merci a votre aide Mr Lami durant tout ma periode de pfe
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

De rien ;-)
0
karim_khouja Messages postés 50 Date d'inscription   Statut Membre Dernière intervention   3
 
salut ,

j'ai terminer mais je te demande une solution s'il y on a

j'ai trois script perl maintenant bien faite, j'ai developper une interface graphique GTK2-perl
j'ai trois boutons radios, chaque bouton dois faire appel a un script

est ce que cette commande permet de faire cette tache efficacement?

system("/usr/bin/perl /path/to/my_script.pl ");

merci bcp
0