Bonjour
Je suis etudiant a epitech, actuellement en piscine C.
Pour l'instant on apprend a se servir de linux, et les ennoncés sont pour moi un peu corsé.
Ecrire un script nommé “how_many_are_we.sh” qui affiche le nombre d’étudiants de la ville passée en paramètre. Sans paramètre, le script affiche le nombre totald’étudiants.
* Utilisez le fichier “students.csv” pour récupérer les données nécessaires
* Nous utiliserons notre propre fichier, merci de ne pas le commit dans votre dépôt (dans le cas contraire, vous serez sanctionné).
* Le paramètre passé au script sera toujours valide.
?> cat ~/moulinette/students.csv | ./how_many_are_we.sh bdx"
Pouvez vous me dire ou chercher, ou un debut de piste? Sachant que je suis completement debutant.
Je vous remercie du temps que vous m'accordez
# quelques pistes...
Posté par Zylabon . Évalué à 3. Dernière modification le 30 septembre 2014 à 10:28.
man wc
man grep
man expr
man read (mais regarde plutôt des exemples sur le net, la page de man va pas t'aider beaucoup, imbitable)
ajout :
man cut
Please do not feed the trolls
[^] # Re: quelques pistes...
Posté par petit_bibi . Évalué à 2.
help read (pour la doc du builtin)
# Comprend rien x)
Posté par ITIZBACK . Évalué à -1.
Euuuh, merci pour les pistes, mais le man est pour moi incomprehensible.
En fait si j'ai bien compris, je doit creer une ligne qui "filtrera" les infos recherchées dans le dossier students.csv vers how_any_are_we.sh
Or, je ne vois pas dutout dutout comment structurer ma ligne, et ou trouver les infos de ma ligne.
Mon "prof" (un eleve de 3em année) me dit de lire sur une entrée standard.
Wtf? :(
[^] # Re: Comprend rien x)
Posté par Zylabon . Évalué à 3.
Donc, dans ton students.csv, tu dois avoir sur chaque lignes des données de la forme :
champ1,champ2,champ3,champ4...
l'idée c'est d'écrire un programme qui va lire l'entrée standard, et traiter chacune de ses lignes.
cat fichier | programme
ça va "injecter" le contenu du fichier dans le programme l'écritureprogramme < fichier
est plus visuelle, lecat fichier |
ici ne sert à rien.ce programme, il faut qu'il lise le fichier, ligne par ligne, je ne sais pas comment est formaté le fichier csv. Mais je vais prendre un tout autre exemple :
Pour écrire un programme qui lit chaque ligne de son entrée standard et qui ajoute "tavu!?" après, on peut faire comme ça :
Please do not feed the trolls
[^] # Re: Comprend rien x)
Posté par petit_bibi . Évalué à 4.
Pourtant la première ligne de la doc de 'read' contient une grande partie de la solution:
Lit une ligne depuis l'entrée standard et la découper en morceaux.
RTFM ?
[^] # Re: Comprend rien x)
Posté par yohann (site web personnel) . Évalué à 2.
La commande si dessus peux paraître humoristique, mais je suis passé par epitech moi aussi, et si tu compte aller au bout il est vital de savoir lire une page de man sinon tu seras condamner à être le boulet des groupes plus fort que toi (et ils ne t'expliquerons rien parce que ça les mettrai en retard pour terminer des projets à deadline hypertendu).
bonne chance en tout cas.
# Simple curiosité
Posté par Anonyme . Évalué à 6. Dernière modification le 30 septembre 2014 à 11:29.
N'y vois aucune intention négative, ceci est une vraie question: comment se retrouve-t-on dans une école comme epitech quand on a aucune notion de base relative aux environnements UNIX et qu'on ne sait apparemment pas utiliser un moteur de recherche ?
Et pour être tout de même utile, bonne lecture: Flux standard
[^] # Re: Simple curiosité
Posté par Elwood_Blues . Évalué à 2.
Et aucune notion de programmation aussi
[^] # Re: Simple curiosité
Posté par X345 . Évalué à 7.
Le principe d'une école c'est pas d'apprendre par hasard ? Parce que si on connaît déjà tout sur Unix, on a peut-être pas besoin d'y aller.
Et non, ne pas connaître Bash et C, ça ne veut pas dire qu'on y connaît rien de rien en informatique. On peut avoir fait un peu de Python sous Windows (grand dieux !) et s'y connaître en réseau. Et pour arriver sur Linuxfr et poser une question, faut sûrement avoir utilisé un moteur de recherche.
[^] # Re: Simple curiosité
Posté par Anonyme . Évalué à 2. Dernière modification le 30 septembre 2014 à 13:47.
je peux me tromper, mais pour moi epitech rime avec autodidacte passionné (ou croyant l'être) qui veut valider et approfondir ses connaissances sans passer par les contraintes d'une école d'ingénieur.
[^] # Re: Simple curiosité
Posté par cfx . Évalué à 2.
Tu n'as pas plus besoin de savoir programmer pour entrer dans une école d'informatique que de savoir poser une sonde urinaire lorsque tu entres dans une école d'infirmière.
[^] # Re: Simple curiosité
Posté par Zylabon . Évalué à 5.
Les infirmières apprennent comment est foutu le système urinaire avant d'apprendre à placer une sonde.
Les mécaniciens apprennent le principe de fonctionnement d'un moteur 4 temps avant de caler des soupapes.
Les informaticiens apprennent les entrées sorties et les processus avant de faire du shell…
Please do not feed the trolls
# Salut
Posté par Marotte ⛧ . Évalué à 5.
Tu m'as l'air complètement largué. Je pense qu'il va falloir que tu passes du temps à lire les pages de manuel. Même si possible que tu te procures un livre sur le shell Unix et que tu le potasses sérieusement. Je vais quand même t'aider un peu.
Mettons que j'ai le fichier CSV suivant (gens.csv):
le script ci-dessous est un début (combien.sh) :
que je peux utiliser ainsi :
Attention, ce script devrait être loin de te rapporter une bonne note ;) Par exemple si des lignes vides étaient présentes dans le fichier CSV elles seraient comptées dans le total des gens…
Tu peux donc potasser le manuel de ton shell (sh, bash, dash, ksh, etc), il est gros, tu vas y passer du temps sur celui là, pour comprendre ce que le script fait. Ainsi que les manuels de cut, grep, wc, et bien d'autres encore.
J'espère que bien que débutant sous Linux tu as quand même des notions d'algorithmie, que tu as par exemple déjà fait des scripts sous Windows, parce que sinon ça va être dur (mais tu peux y arriver en travaillant)
[^] # Re: Salut
Posté par max22 . Évalué à 1.
un autre conseil : installer linux sur ton pc à la maison.
[^] # Re: Salut
Posté par Bernez . Évalué à 3.
UUOC !
[^] # Re: Salut
Posté par Marotte ⛧ . Évalué à 2.
Je sais bien. J'ai repris le texte de son exercice :
On voit bien que c'est volontairement écrit dans un but didactique pour introduire le pipe et les arguments en faisant d'une pierre deux coups :)
D'ailleurs dans la vraie vie il faudrait sûrement mieux écrire un script qui prend deux arguments
./combien.sh [fichier|-] <ville>
Avec la possibilité d'indiquer
-
comme fichier si on veut vraiment lire la sortie standard d'un autre programme.Je pense que si on maîtrise l'un des shells UNIX/Linux classiques et l'ensemble des coreutils (ou leurs équivalents sous UNIX), on a déjà un bon bagage (certains diront le minimum) pour travailler dans l'informatique sous GNU/Linux ou autre UNIX-like.
# Lire le cours
Posté par NeoX . Évalué à 6.
ca parait idiot, mais si on te donne un devoir, c'est probablement qu'il y a eu un cours, avec des exemples,
et n'y voit aucune offense, mais il te faut alors lire, ET comprendre le cours,
pour restituer ces connaissances pour resoudre l'exercice.
[^] # Re: Lire le cours
Posté par denxp . Évalué à 2.
C'est là où ils sont forts chez Epitech : y a pas (vraiment) de cours !
En fait tu paies très cher pour t'auto-former. Tu me diras que ça fait cher
la connexion internet ( +- 8000/an de mémoire ) mais bon tu
trouves du boulot direct à la NASA en sortant.
[^] # Re: Lire le cours
Posté par arnaudus . Évalué à 6.
Il faut reconnaitre que si tu arrives en 3 ans de passer du stade "euh, j'ai ouvert un terminal et c'est tout noir" à "bosser à la NASA", tu n'es pas la moitié d'un con. Mais vu que d'après mon expérience la distribution des capacités cognitives dans les écoles d'ingé est à peu près identique à celle de la population générale (sans considérer les effets délétères de l'alcool), ce genre de formation doit s'accompagner d'un taux d'échec avoisinant les 98%. Parmi les hypothèses alternatives : (a) l'OP n'est pas représentatif de la population d'étudiants de l'école, (b) ils enterrent des gens sous le parking et ils les remplacent par des clones androïdes, (c) ils embauchent n'importe qui à la NASA.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.