bonjour à vous
, alors voilà j'ai quelque chose à vous demander et j'espère bien obtenir des informations suivant votre compréhension et votre générosité.
donc, là pour quelques temps, j'ai à peu près une soixantaine d'exercices à faire. bien sûr, je ne vais pas tous les mettre ici et penser que vous aller m'aider à tous les répondre
mais j'aimerais juste avoir un peu d'aide pour quelques uns ![]()
le reste je me débrouillerais
déjà , je voudrais savoir si je me trouve sur le bon forum ( si il y en a d'autres similaires...) et qui pourra être disponible pour m'aider :D
il s'agit en fait de faire des langages de programmation sous unix , donc linux.
je mettrais 1 seul exercice tout à l'heure car il ce serait déjà bien de savoir faire ca pour pouvoir faire les autres.
donc merci à ceux qui répondront présents ![]()
Salut et bienvenue
« sous unix , donc linux. »
Wattention (
), c'est pas vraiment la même chose (voire pas du tout selon ce qu'on étudie...). Mais bon, passons.
On va avoir besoin de petits détails pour te dire si tu es au bon endroit ou pas:
Quels sont les "langages" impliqués ?
Si c'est pour du scripting bash / sh / ksh, par exemple, c'est effectivement plutôt ici.
Sinon (C, C++, Java...), ce serait plutôt par ici: https://www.jeuxvideo.com/forums/0-47-0-1-0-1-0-programmation.htm
Note que dans le cas du scripting, tu peux aussi trouver de l'aide sur le forum prog je pense. ![]()
l'exercice que je dois faire portera sur des lignes de commandes à mettre dans un shell donc à mon avis ce sera sur le terminal de linux
et il aura une commande: w gets à utiliser il me semble :
je mettrais tous les détails plus tard
avec l'énoncé de l'exercice
et déjà , je sais qu'il y a au moins une personne qui pourra peut etre m'aider
Oki, donc c'est effectivement bien ici.
L'emploi du mot "programmation" semait le doute, c'pour ça
Bon bah, mes compétences sont pas fantastiques en ligne de commande je pense, mais j'ai au moins quelques bases pour t'aider au début...
Et ya d'autres gens ici aussi, t'en fais pas ![]()
alors, ce qui est demandé :
il faut d'abord etre sur linux et ouvrir l'interpréteur de commande
- les commandes doivent se faire avec grep.
- on peut aussi utiliser la commande cat
il y a un dictionnaire qui est présent dans le système et toutes les questions portent sur ce dictionnaire en francais :
1) combien ya t-il de mots dans ce dictionnaire ?
- votre nom fait -il parti de ce dictionnaire ?
- quel est le dernier mot du dictionnaire ?
- combien y a t-il de mots comprenant 4 lettres identiques ?
franchement si quelqu'un à des idées de commandes là dessus, j'en ai fais pleins d'autres avant ceux-ci mais je vois pas trop comment faire
merci pour l'aide.
« combien ya t-il de mots dans <fichier> »
Ce genre de tâches (compter des mots, lignes, caractères [...] d'un fichier donné) se fait souvent avec l'utilitaire wc.
Pour savoir comment il fonctionne (ya rien de compliqué, n'aies pas peur
), utilise:
man wc
(man est une commande qui appelle le manuel d'utilisateur pour un élément donné, une autre commande par exemple)
« votre nom fait -il parti de ce dictionnaire ? »
Là, je pense qu'il y a plusieurs méthodes.
La mienne (qui n'est pas forcément la plus optimale) consiste à afficher le contenu (intégral) du fichier, et rediriger ce "flux" de données vers un "filtre" (grep ? qui a dit grep ?) à l'aide d'un "tuyau" (le pipe, | ).
Les éléments ont été donnés par tes professeurs pour ce faire, je pense. Raisonne bien avec des "tuyaux": tu as une commande qui affiche tout le fichier sous forme d'un flux (flux qui, par défaut, débouche sur ton écran), tu as un tuyau | qui te permet de "rediriger ce flux" vers l'entrée d'une autre commande, et tu as justement une commande qui permet de filtrer l'entrée, et n'afficher en sortie que ce qui satisfait les critères demandés...
« quel est le dernier mot du dictionnaire ? »
Là je vais pas passer par 36 chemins. Une commande comme tail, bien utilisée, répond vite-fait bien-fait à ce genre de question, surtout si le "dictionnaire" est organisé de telle sorte qu'il n'y a qu'un mot par ligne.
« combien y a t-il de mots comprenant 4 lettres identiques ? »
Tu auras certainement besoin d'utiliser une "expression régulière", ou quelque chose qui s'y rapporte. Sachant que j'en utilise une fois par siècle (en webdev pour le moment...), je ne saurai pas t'aider pour créer ton expression régulière.
Je peux juste te dire que des outils comme grep savent les interpréter.
Ainsi, pour cet exercice, si tu parviens à chainer les commandes avec des tuyaux de cette façon:
Affiche tout le fichier | Filtre les mots, critère: 4 lettres identiques | Compte les mots
Tu devrais obtenir le résultat escompté. (l'ordre est important
).
Voilà voilà, n'hésite pas si tu as d'autres questions ![]()
1) wc -l <fichier> ?
- grep '^[lenom]' <fichier> | wc -l ?
- wc -l <fichier> $$ (pour demander la dernière ligne je ne sais pas si c'est $$ ou autre chose ...)
- oui mais comment demander de faire 4 lettres identiques ? ![]()
sinon si pour que ca aille plus vite, pourrais tu pas me donner tes réponses que j'essaierais de voir si ca marche puisque je n'ai pas linux là actuellement avec moi
J'utilise rarement grep "directement", j'aime bien faire un cat bien gras, et le filtrer derrière.
Pour compter les mots, j'aurais mis pareil.
Pour chercher une expression dans un fichier, j'aurais fait un truc style `cat <fichier> | grep 'expression' (pas besoin de wc derrière, à moins que le but soit de compter les occurrences d'un mot)
T'embête pas avec wc pour la dernière ligne, utilise plutôt tail à la rigueur. Ya une option de tail pour choisir combien de lignes afficher, sachant qu'il affiche les N dernières lignes du fichier à la demande.
4 lettres identiques, j'vais y réfléchir...
d'accord. les autres peuvent venir aider aussi
!
cet exercice est assez long voici la suite :
- donner tous les mots qui commencent par al et finissent par la
- combien ya t-il de mots qui commencent par deux voyelles ?
- " " " " qui commencent par deux consonnes ?
- par essais successifs, pouvez vous trouver le mot le plus long?
- trouver le mot comprenant le plus de z
et sinon, connais tu bien la commande wget ?
Bon là je vais dormir un peu (quand même
) donc on verra plus tard pour d'éventuelles solutions, mais ce qui est clair et net, c'est que ton ou tes profs cherchent à te faire manipuler des expressions régulières, ou des outils de recherche de motifs.
Je pourrai pas te faire un cours sur les regexp, et je ne connais pas de tuto "potable" en ligne (j'ai un bouquin, donc je me sers essentiellement de lui comme base théorique), mais il va falloir que tu t'inities à l'utilisation de regexp avec grep par exemple je pense.
J'utilise wget occasionnellement quand j'ai besoin d'un fichier dont je connais l'emplacement exact -l'exemple le plus courant étant: la dernière version du serveur Minecraft, quand je mets à jour mon serveur.
Je n'ai utilisé qu'à de rares reprises des options un peu plus "fines" de wget.
Encore une fois, le manuel de wget (`man wget`) t'en dira certainement plus long que moi sur le sujet ![]()
Ouais, enfin cat | grep c’est quand même assez débile…
oui, ce sont des commandes simples, mais je n'ai pas que cet exercice à faire, peut etre qu'il y a beaucoup de questions sur cet exercice mais en ayant les solutions de ces questions je pourrais faire d'autres plus complexes.
et je n'ai pas de linux avec moi pour faire les commandes
T’as surtout l’air d’avoir un baobab dans la main.
En moins de 40s de google on tombe sur ce genre de site :
https://petitpensebete.wordpress.com/2008/10/08/bash-grep-et-expressions-regulieres/
qui donne des exemple d’utilisation d’expression régulière avec grep. Tu potasses un peu ça et t’es capable de répondre à toutes tes questions facilement (exception faite pour celle des mots contenant 4 lettres identiques qui est plus difficile).
Je suis bien gentil car t’as même pas l’air d’avoir pris le temps de lire la page de man de grep (qui soit dit au passage t’aurais éviter de partir en hs en utilisant autre chose que du grep et du cat).
et je n'ai pas de linux avec moi pour faire les commandes
Ben installe une distribution, utilise un liveCD, cygwin sous windows, bref bouge toi les fesses quoi…
j'ai vérifier tout ca déjà, j'ai bien dit plus haut que j'ai une soixantaine d'exercices ! les questions posées ne sont que une partie de l'exercice 1 qui sert à nous donner les expressions simples pour pouvoir faire les autres exercices plus complexes
vois- tu le temps que cela peut prendre ?
je cherches de mon coté et je ne demande que à ceux qui en ont la possibilité de répondre à ces questions pour que je puisses faire les autres plus compliquées
QuentinLeSellin
J'ai bien dit "bien gras" hein ![]()
C'est un tic que j'ai pris, j'ai jamais corrigé le tir, et dans la mesure où j'utilise pas si souvent que ça ce genre de trucs (en fait en pratique le gros du temps que je passe sur la ligne de commande, c'est pour configurer un nouveau serveur, une fois que c'est fait, ça se réduit aux MàJs et quelques opérations de maintenance
), JMEF un peu.
Et je crois bien avoir mentionné qu'il est possible d'utiliser grep directement (ce qui est plus logique, oui)
- donner tous les mots qui commencent par al et finissent par la
grep ' ^ \(a\)\(a\)\(a\).*$' ?
- combien ya t-il de mots qui commencent par deux voyelles ?
grep '^[aeiouy][aeiouy]' <fichier> ?
- " " " " qui commencent par deux consonnes ?
grep '^[^aeiouy][^aeiouy]' <fichier> ?
- par essais successifs, pouvez vous trouver le mot le plus long?
cat <fichier> | grep '^ [a-z] (x10 à répétition)$'
cat <fichier> | grep <<^.\{10\}>> ?
- trouver le mot comprenant le plus de z
grep 'z.*z.*z.*z' ?