Licence Pro GSI: scripts sous unix/ TD No2

Objectifs du TD :  redirection, enchaînements de commandes, utilisation de filtres classiques, premiers scripts shell, premier contact avec les variables d'environnement.

exercice 1: filtres usuels

Dans cet exercice, vous aurez à utiliser les filtres usuels (sort, uniq, tail, head, tr, grep) et, parfois à les enchaîner pour obtenir le résultat voulu. N'hésitez pas à consulter la page de manuel de ces outils pour y préciser/découvrir des options utiles.
  1. on travaille sur le fichier adresses.txt (téléchargez le ou recréez le rapidement avec un éditeur de texte) Les lignes de ce fichier ont la structure suivantes: "Nom:Prénom:No tel:code postal:ville". Les champs sont séparés par le caractère ":".Affichez en une version triée dans l'ordre croissant des noms.
  2. affichez les 3 premières lignes du fichier
  3. affichez les 4 dernières lignes du fichier
  4. affichez les lignes 2 à 5 du fichier
  5. affichez en une version triée par prénoms croissants
  6. affichez en une version triée par ville et nom croissants (en cas d'égalité de la ville, les lignes sont triées par noms croissants)
  7. affichez la liste des noms, prénom et code postaux triée par code postaux
  8. affichez la liste des noms sans doublons (si un nom apparaît deux fois, on ne veut le voir qu'une seule fois)
  9. affichez les noms qui apparaissent plusieurs fois dans la liste
  10. affichez la liste des noms sans doublons et indiquez devant chaque nom le nombre de fois il apparaît
  11. affichez la liste des noms après les avoir passés en majuscule
  12. affichez la liste des noms et prénoms des personnes habitant Evry.
  13. affichez, par la même méthode, la liste des gens qui habitent Dreux

exercice 2: premiers scripts shells

1. écrire un script dateNom qui retourne la date courante et le login de l'utilisateur: "nous sommes le date et vous êtes login"
2. On considère le script test.sh suivant :
#! /bin/sh
echo $1
testez le :
test.sh
test.sh salut les tepos
remplacez $1 par $2 et recommencez vos tests.
remplacez $2 par $* puis par $#
Expliquez.
3. On travaille avec le fichier adresses.txt. Ecrire un script noTel.sh ayant comme argument un nom et un prénom qui retourne le numéro de téléphone de la première personne. du fichier ayant ce nom et ce prénom.
4. modifiez votre script de façon à ce qu'il indique "non trouvé" s'il n'y a personne ayant ce nom et prénom dans le fichier adresses.txt (remarque: consultez la page de manuel de la commande grep et regardez les codes de retour).
5. Ecrire un script coordonnees.sh ayant un nom et un prénom comme argument qui  indique les coordonnées de la première personne ayant ce nom et ce prénom . L'affichage se fera sous la forme : "prenom NOM habite nomVille (codePostal) et a comme No de tel: numeroTel". Le nom de la personne sera en majuscule.

Bibliographie/liens utiles

Dans une version ultérieure de ce document.