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)