Bonjour à tous
en fait je suis débutant avec la programmation shell et je trouve du mal à résoudre mon prblème. j'ai un fichier à 2 colonnes de la forme
5301 1931
5301 1932
5301 1933
5301 1935
5311 1922
5311 1923
5311 1924
je dois vérifier sur la colonne 2 la différence de valeurs successivement (1931-1932); (1932-1933);… etc s'il ya un décalage > 1 je dois compter le nombre de décalage en tenant compte de la colonne 1 si le nombre de la colonne change je dois refaire l'opération le faire tout le cumul des occurrences trouvées sachant que sur la colonne 1 l'incrémentation est de 10. et je cherche à cumuler le nombre d'occurrence 'condition [(si valeur1-valeur2)>1 je dois déclencher le compteur] sur la colonne 2.
merci d'avance pour votre aide
# les bases de la programmation c'est l'algorithmie
Posté par NeoX . Évalué à 6. Dernière modification le 25 février 2017 à 11:34.
ce n'est pas le langage, tu es debutant en shell, mais tu saurais le faire dans un autre langage ?
alors d'abord ecrire ton algorithme dans ta langue natale,
moi c'est le francais,
et ca donnerait :
# Moi yapatouh compris.
Posté par Luvwahraan . Évalué à 1.
J’aime bien faire des opérations sur des chaînes, mais là j’avoue être un peu perdu.
Ce que tu cherches à faire ne me semble pas clair.
Je ne comprends pas vraiment ce qu’est le décalage.
À priori ce serait la différence entre colonne 2 d’une ligne et de sa suivante.
Sauf que dans la suite tu veux compter ce décalage ; du coup je suis perdu.
Qu’est-ce que ce compteur ?
Ce que devra retourner ton script ?
[^] # Re: Moi yapatouh compris.
Posté par Luvwahraan . Évalué à 1.
En fait tu veux :
compter les différences strictement supérieurs à 1 entre les colonnes 2 des des lignes qui se suivent, pour une valeur de colonne 1 donnée ?
Par exemple ici ça ferait { 0 => 1, 10 => 2, 20 => 0 }.
C’est bien ça ou il me faut un café plus balèze ? (-:
[^] # Re: Moi yapatouh compris.
Posté par NeoX . Évalué à 2.
facile alors
[^] # Re: Moi yapatouh compris.
Posté par imalos . Évalué à -1.
Bonjour,
je dois tester :
tant que la valeur de la col1 est la meme
faire la difference entre valeurs de col2 dans l'ordre indiqué (val2-val1; val3-val2,…etc) si la diff est > 1 je dois compter cette occurence
mon script doit compter combien de fois ya de valeur > 1 dans l'opération de differnce
je ne sais pas comment le faire svp me faire ce script.
merci bien de ton aide
[^] # Re: Moi yapatouh compris.
Posté par cyberjunkie . Évalué à 3.
Ben voyons… :-/
[^] # Re: Moi yapatouh compris.
Posté par _kaos_ . Évalué à 3.
Salut,
Non, personne ne va pas le faire à ta place, désolé. :)
Si c'est un exercice de cours, lis le cours, commence à faire un début de script à partir des pseudo-codes qui t'ont déjà été proposés. En gros, fais un effort.
Si c'est un problème d'entreprise, prépare le chèque et annonce le prix, il y a plein de bonnes âmes qui sauront te répondre si ça vaut le coup.
Matricule 23415
[^] # Re: Moi yapatouh compris.
Posté par cyberjunkie . Évalué à 2. Dernière modification le 26 février 2017 à 11:10.
Vu comment tu formules ta demande, je trouve que tu as fait l'essentiel du boulot: ton algorithme me paraît tout à fait clair, en tout cas bien plus que dans ta demande initiale.
C'est la preuve que le simple fait de poser ta question intelligemment sur linuxfr a contribué à te faire progresser.
T'as plus qu'a traduire tout ça en shell et revenir poster le résultat ici même pour que l'on puisse continuer à t'aider. ;-)
[^] # Re: Moi yapatouh compris.
Posté par Luvwahraan . Évalué à 2.
À priori je ne m’étais pas trompé alors.
Merci à l’ultime puissance du café kilétounoir du matin ! *pose de
BiomanCaféman* \o/Comme je suis très très méchant et un poil taquin je laisse quand même traîner temporairement un exemple de la chose, avant que mon dossier /tmp disparaisse dans les méandres d’une RAM tristement vide.
http://pastebin.com/8x4WkdLf
[^] # Re: Moi yapatouh compris.
Posté par imalos . Évalué à -1.
es possible en awk
merci pour tou
[^] # Re: Moi yapatouh compris.
Posté par _kaos_ . Évalué à 1.
Bin oui c'est possible.
Surtout si tu donne le début de ce que tu as fait, ou que tu paye au salaire qui va bien pour faire from scratch.
Matricule 23415
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.