Système pour la Data Science
Master AMSD/MLSD
Scripts shell
Demande à réaliser
Manipulations à faire en amont
  - Créer un répertoire 
seance2 dans le répertoire du cours 
  - Copier le répertoire 
UbiqLog4UCI dans ce nouveau répertoire 
Scripts simples
  - Ecrire un script prenant des entiers en paramètres et affichant la somme de ceux-ci
    
      - Gérer le cas aucun paramètre fourni
 
      - Gérer le cas paramètre non entier
 
    
   
  - Ecrire un script qui demande “Avez-vous compris le cours (Oui/Non/Exit) ?”
    
      - Qui répond
        
          - “Bravo” si l’utlisateur répond “Oui”
 
          - “N’hésitez pas à poser des questions à l’enseignant” si l’utilisateur répond “Non”
 
          - “Au revoir” si l’utlisateur répond “Exit”
 
          - “Merci de lire les consignes…” sinon
 
        
       
      - Gérer les variations à la réponse
        
          - “Oui” peut être écrit aussi “oui”, “OUI”, “o”, “O”
 
          - “Non” peut être écrit aussi “non”, “NON”, “n”, “N”
 
          - “Exit” peut êter écrit aussi “exit”, “EXIT”, “e”, “E”
 
        
       
    
   
On va travailler sur les fichiers présents dans le répertoire UbiqLog4UCI.
  - Faire un script qui demande à l’utilisateur un numéro d’individu (de 1 à ?) et qui vérifie que celui-ci existe bien dans la liste des répertoires
    
      - De plus, le script nous indiquera si cet individu est un homme (
M dans le nom) ou une femme (F) 
    
   
  - Compléter ce script pour demander une date à l’utilisateur
    
      - Le script indiquera s’il y a bien un fichier de log pour ce jour la et cette personne
 
    
   
  - Compléter encore le script pour pouvoir passer en paramètre les deux informations, avec le formalisme suivant :
    
      -i 12 : pour tester si l’individu 12 existe 
      -d 2014-01-11 : pour tester si la date existe pour cet individu
        
          - si l’option 
-i n’est pas utilisée, alors message d’erreur 
        
       
    
   
  - Gérer les appels
    
      - si pas de paramètre : demande de l’utilisateur puis de la date
 
      - si juste utilisateur (
-i) : affichage pour dire si c’est un homme ou une femme, puis demande de la date 
      - si utilisateur (
-i) et date (-d) : affichage pour dire si c’est un homme ou une femme, et dire si la date existe 
    
   
Toujours dans le répertoire UbiqLog4UCI, on veut faire un script qui va concaténer tous les logs dans un seul fichier JSON, avec le format suivant :
[
    {
        id: 1, // première partie du nom du répertoire
        sexe: "M", // deuxième partie du nom du répertoire
        date: "2014-01-11", // date ré-écrite au format YYYY-MM-DD
        log: [contenu_du_fichier], // contenu du fichier transformé en tableau JSON
    },
    ...
 ]
 
Les fichiers log sont formatés avec un litéral JSON par ligne, cf ci-dessous :
{"Wifi": {...}}
{"Wifi": {...}}
...
 
Pour le transformer un tableau JSON, il faut donc encadrer ces lignes par des [] et mettre des virgules entre chaque ligne, comme ci-dessous :
[
    {"Wifi": {...}},
    {"Wifi": {...}},
    ...
]
 
A faire
  - Créer un script permettant de concaténer toutes les informations dans un seul fichier avec le formalisme vu ci-dessus
    
      - nom du fichier par défaut 
sortie.json 
    
   
  - Modifier le script pour pouvoir indiquer le nom du fichier à écrire
    
      - paramètre 
-o suivi par le nom de fichier à écrire 
    
   
  - Etendre ce script à la possibilité de demander de n’extraire que les lignes correspondant à une certainte recherche (similaire à celle faite avec 
grep)
    
      - l’utilisateur indiquera comme paramètre 
-s suivi du critère de recherche (syntaxe grep)