Cours-Gratuit
  • Accueil
  • Blog
  • Cours informatique
home icon Cours gratuits » Cours informatique » Cours UNIX - Linux » Exercices Linux/Unix »

Articles similaires

  • Exercices unix programmation script shell - awk
  • Comment rechercher une valeur dans un tableau sur Excel
  • Excel : comment trouver la valeur minimale en fonction de critères
  • Tutoriel Excel : la fonction INDEX
  • Excel : calculer la moyenne (MOYENNE, MOYENNE.SI, MOYENNE.SI.ENS)
  • Tuto Python-SciPy : manipuler les tableaux Matlab
  • Comment creer et partager des feuilles de style personnalisees dans Word
  • Exercices PHP : Gestion des Images
  • Exercice Algorithme : Les Tableaux - Le Tri - Les Fichiers
  • Exercice Excel liaisons de tableaux à l'aide de formules de calcul
  • Python : Calculer la somme, moyenne d'une liste
  • Exercice Algorithme : Les Tableaux

Documents similaires

  • Modèle de bon de commande sur Excel

  • Modèle de tableau de suivi de commande pour fournisseur sur Excel

  • Modèle de bon de commande sur Word

  • Exemple de bon de commande du Maroc sous Excel

  • Modèles bon de commande fournisseur sous Excel

  • Modèle de bon de commande d'Algérie sous Excel

  • Lettre de motivation préparateur de commande

  • Modèles de lettres sous Word

Exercices sur la commande awk

Rédigé par GC Team, Publié le 30 Août 2010, Mise à jour le Mardi, 31 Août 2010 17:54
Participez au vote ☆☆☆☆☆★★★★★

 

Les exercices portent sur le fichier mesure suivant:

nom de la mesure | lieu de la mesure | date de la mesure | valeur brute | correction 1 | correction 2 | correction 3 | valeur corrigée |
marcel | brest | 18/12/1998 | 12.5 | 1.34 | 1.23 | -1.5 | 13.47 |
polo | loctudy | 21/05/1997 | 11.5 | 1.24 | 1.12 | -1.2 | 12.66 |
otto | camaret | 04/09/1995 | 9.3 | 0.98 | 1.17 | -1.12 | 10.33 |
Le champ valeur corrigée est la somme algébrique de la valeur brute et des 3 corrections.

Exercice 1

Vous vous êtes bourrés sur le signe de la correction 1, de même dans la correction 2, vous avez découvert que vous avez commis une petite erreur et qu'il fallait lui ajouter 0.1. Modifier le fichier en prenant en compte ces corrections, faites en sorte que la valeur corrigée soit modifiée en conséquence.

Dans le même exercice vous afficherez la somme totale des valeurs corrigées et la valeur corrigée moyenne. Ces valeurs doivent être sauvegardées dans un fichier résultat.

Exercice 2

Afficher les mesures ayant une année paire. Redirigez le résultat de la recherche vers un fichier paire.

Exercice 3

Vérifiez que le format de la date jj/mm/aaaa est correcte ainsi que le format du lieu (formé que de lettres de l'alphabet en minuscules ou majuscules).

Exercice 4

Afficher les noms de mesure et leur valeur corrigée associée en vous servant d'un tableau associatif.



 

Exercice 1

 

1
2
3
4
5
6
7
8
9
10
11
#!/bin/bash
awk ' BEGIN { FS="|";OFS="|" }
NR = =1 { printf("%s\n",$0)}
NR>1 { $5*=-1
$6+=0.1
$8=$4+$5+$6+$7
somme+=$8
printf("%s\n",$0)}
END { printf("somme totale des valeurs corrigées %f \n",somme) > "resultat";
printf("valeur corrigée moyenne %f \n" (somme/(NR-1)) >> "resultat"}
' $1

 

Appelez votre script exo1.awk, donnez lui les droits 755, et appelez le ainsi:

exo1.awk mesure > mesure.corrigee

Après exécution, vérifiez l'existence et le contenu du fichier resultat.

Exercice 2

1
2
3
4
5
6
#!/bin/bash	
awk ' BEGIN { printf("Mesures ayant une année paire \n") > "paire";FS="|"}
NR>1 { annee=substr($3,7,4)
if (annee%2= =0)
{ printf("mesure %s ",$1); printf(" année %s paire\n ",annee) >> "paire"}
' $1

Appelez votre script exo2.awk, donnez lui les droits 755, et appelez le ainsi:

exo2.awk mesure

Après exécution, vérifiez l'existence et le contenu du fichier paire.

Exercice 3

1
2
3
4
5
6
7
#!/bin/bash	
awk ' BEGIN { printf("Vérification du format \n";FS="|" }
NR>1 && $2 !~ /^[0-3][0-9]\/[01][0-9]/\[0-9][0-9][0-9][0-9]$/
{ printf(" Mauvais format de date pour mesure %s \n", $1 }
NR>1 && $2 !~ /^[a-zA-Z][a-zA-Z]*$/
{ printf(" Mauvais format du lieu pour mesure %s \n",$1 }
' $1

Appelez votre script exo3.awk, donnez lui les droits 755, et appelez le ainsi:

exo3.awk mesure

Le fonctionnement du script sous LINUX est un peu foireux, ça marche bien par contre sur d'autres environnements (HP-UX ou Solaris), va savoir pour quoi...

On pourrait améliorer encore plus la vérification en vérifiant bien que la date va de 1 à 31 et le mois de 1 à 12, avec un script du style:

C'est un peu lourd comme script, à vous de trouver plus simple. Toujours un fonctionnement capricieux sous LINUX.

Exercice 4

 

1
2
3
4
5
6
7
#!/bin/bash	
awk ' BEGIN { printf("Affichage des mesures et de leur valeur corrigée \n");FS="|"}
NR>1 { mesure-corrigee[$1]=$8
END
{ for (mesure in mesure-corrigee)
{printf("mesure %s ",mesure); printf(" égale à %s \n",mesure-corrigee[mesure]) }}
' $1

 

Appelez votre script exo4.awk, donnez lui les droits 755, et appelez le ainsi:

exo4.awk mesure

  • Contactez-nous
  • A propos de nous
  • On recrute
  • Rechercher dans le site
  • Politique de confidentialité
  • Droit d'auteur/Copyright
  • Conditions générales d'utilisation
  • Plan du site
  • Accueil
  • Blog
  • Finance et compta.
  • Formations Pro.
  • Logiciels & Apps
  • Organisation
  • Cours informatique
  • Aide à la rédaction
  • Etudes et Metiers
  • Science et Tech
  • Titans de la Tech
id 11354 02