IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Besoin d'aide commande read


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 2
    Par défaut Besoin d'aide commande read
    Salut à tous, j'aimerais poser une question a propos de la commande read. Je sais déjà comment elle fonctionne mais je suis face à un exercice et je ne comprends pas vraiment comment cette commande a été utilisée dans ce cas précis.
    Dans cet exercice, on dispose d'un fichier .csv qui contient une liste de pays et leur population entre 1980 et 2010, chaque champ est séparé par un point virgule et un retour à la ligne sépare chaque pays. Voici par exemple comment est représentée l'Argentine :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Argentina;28369800;28848060;29329880;29793550;30230640;30671760;31144990;31624620;32099320;32571620;33035580;33504410;33966850;34407150;34846890;35273840;35682960;36102160;36517920;36923420;37335650;37694170;37999450;38336880;38741830;39181260;39614430;40048820;40482000;40913580;41343200

    Pour les pays contenant plusieurs territoires comme la France avec la Guadeloupe, la Polynésie etc.. on dispose d'un fichier contenant tous les territoires. Par exemple pour la France on a un fichier wholeFrance qui contient ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    France
    French Guiana
    French Polynesia
    Guadeloupe
    Martinique
    New Caledonia
    Papua New Guinea
    Reunion
    Saint Pierre and Miquelon
    La but est ici d'écrire un script total_liste_pays qui prend en paramètre une année, le fichier csv contenant les informations pour tous les pays et un fichier contenant les différents territoires formant un pays et qui retourne le nombre d'habitants total pour ce pays à cette année là.
    Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    total_liste_pays 2010 data.csv wholeFrance
    La solution donnée est celle ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #!/bin/bash
     
    while read pays; do
        grep "^$pays;" $2 | cut -d';' -f$(($1-1978))
    done | grep -v -e '--' | { s=0; while read nb; do s=$((s+nb)); done; echo $s; }
    Ce que j'aimerais comprendre c'est, étant donné qu'il y a trois arguments, où le read va t il chercher pays?

  2. #2
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 341
    Par défaut
    Bonjour et bienvenue,

    Es-tu sure que la ligne d'appel du script est ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    total_liste_pays 2010 data.csv wholeFrance
    Pour moi, c'est plutot:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    total_liste_pays 2010 data.csv <wholeFrance

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 2
    Par défaut
    Ah oui en effet, au temps pour moi je me suis précipité. Merci

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 640
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 640
    Par défaut
    Bonjour,

    Ce que j'aimerais comprendre c'est, étant donné qu'il y a trois arguments, où le read va t il chercher pays?
    a priori il ne le fait pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while read pays
    do
    : ...
    done < "$3"
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Besoin d'aide commandes shell administration serveur linux
    Par SEIYA. dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 10/03/2015, 17h17
  2. Besoin d'aide : commande shell
    Par HDI103 dans le forum Shell et commandes GNU
    Réponses: 32
    Dernier message: 30/05/2013, 20h06
  3. Besoin d'aide pour la commande ShellExecute
    Par samy100 dans le forum C
    Réponses: 13
    Dernier message: 19/10/2006, 02h19
  4. Besoin d'aide - initialiser un bouton de commande
    Par newcal dans le forum Access
    Réponses: 2
    Dernier message: 10/02/2006, 11h02
  5. [TP]besoin d'aide pour commandes inconnues
    Par Upal dans le forum Turbo Pascal
    Réponses: 15
    Dernier message: 03/10/2002, 10h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo