LaDissertation.com - Dissertations, fiches de lectures, exemples du BAC
Recherche

Linux Commande

TD : Linux Commande. Recherche parmi 300 000+ dissertations

Par   •  28 Décembre 2018  •  TD  •  1 259 Mots (6 Pages)  •  898 Vues

Page 1 sur 6

IFRI-UAC / L2-SI-GL

TP de Linux

Réalisé par Benradin Tonoudji Y.

et

SAGBO Carmel Prosper

Année: 2017 – 2018

Exercice 1:

Considérant le fichier « fich_test_sed_phone.txt »  

  1. En utilisant  chacune des commandes  sed , grep et awk
  1. Afficher les lignes dont le nom commence par A ou B
  • sed -nr '/^[AB]/p' fich_test_sed_phone.txt
  • grep '^[AB]' fich_test_sed_phone.txt
  • awk -F: '/^[AB]/' fich_test_sed_phone.txt
  1. Afficher les lignes  dont le prénom commence par C ou D
  • sed -nr '/ [CD][A-Z]+:/p' fich_test_sed_phone.txt
  • grep -e ' [CD][A-Z]*' fich_test_sed_phone.txt
  • awk -F: '/ [CD]/' fich_test_sed_phone.txt

2)En utilisant les commandes sed et awk

        a) modifier les prénoms (uniquement les prénoms)  ANDRE en STANISLAS

  • sed -i "s/ ANDRE:/ STANISLAS:/g" fich_test_sed_phone.txt
  • awk -F'[ :]' '{if(/ ANDRE:/){print $1" STANISLAS",$3,$4,$5,$6,$7,$8}}' OFS=":" fich_test_sed_phone.txt

        b) intervertir les noms et les prénoms

  • sed -r "s/(^[A-Z.]+) ([A-Z.]+)/\2 \1/" fich_test_sed_phone.txt | sed -n '/^[A-Z]/p'
  • awk -F'[ :]' '{print $2" "$1,$3,$4,$5,$6,$7,$8}' OFS=":" fich_test_sed_phone.txt

        c) afficher les lignes dont les prénoms (uniquement les prénoms) sont GERARD

  • sed -n '/ GERARD:/p' fich_test_sed_phone.txt
  • awk '/ GERARD/{print $0}' fich_test_sed_phone.txt

        d) afficher les champs dans l’ordre inverse

  • sed -r "s/(^[A-Z.]+) ([A-Z.]+):([0-9][A-Z]):([0-9]+):([0-9]+):([HF]):([0-9]+):([+0-9]+)/\8:\7:\6:\5:\4:\3:\2 \1/" fich_test_sed_phone.txt | sed -n '/+/p'
  • awk -F'[ :]' '{print $8,$7,$6,$5,$4,$3,$2" "$1}' OFS=":" fich_test_sed_phone.txt

3)quelle commande ou série de commandes permet de :

a-) donner le 2e prénoms le plus fréquent au format  9 ==> FOURNIER

  • awk -F'[ :]' '{print $2}' fich_test_sed_phone.txt | sort | uniq -c | sort -n -k1 | tail -2 | head -1 | awk '{print $1"==>"$2}'

b-) donner le 3e nom le plus fréquent au format RICHARD = 8

  • awk -F'[ :]' '{print $1}' fich_test_sed_phone.txt | sort | uniq -c | sort -n -k1 | tail -3 | head -1 | awk '{print $2"="$1}'

c-) transformer toutes les lettres majuscules en minuscule

  • sed 's/.*/\L&/' fich_test_sed_phone.txt

d-) afficher les lignes dont les prénoms sont terminés par INE

  • sed -n -r '/INE:/p' fich_test_sed_phone.txt

e-) afficher les lignes dont les noms sont uniquement de 4 lettres

  • sed -n -r '/INE:/p' fich_test_sed_phone.txt

f-) afficher toutes les lignes en additionnant le 3e champ (Rang) pour en afficher en fin de ligne le total au format suivant :

        ZOUHAIR ISSAM:5A:2004:67002:H:160021267002:+33165999659

        ZOUINA NABIL:4C:1454:75009:H:179051575009:+33519158818

        ZUCZEK LAURENT:4B:1179:77006:H:166010477006:+33824874612

        ZURITA BORIS:5B:2844:13002:H:173021813002:+33108367115

        Total  Rang :5099404   

  • awk -F: '{if(NR>1){total+=$3;print}}END{print "Total Rang: "total}' fich_test_sed_phone.txt

4-)  

a) en utilisant  chacune des commandes awk et sort, trier le fichier en fonction du classement (2ème         champ)

        

  • sort -t: -k 2  fich_test_sed_phone.txt
  1. Quelle commande ou série de commandes  permet d’afficher les lignes dont les numéros de téléphone sont terminés par 57
  • awk -F: '/57$/ ' fich_test_sed_phone.txt
  • sed -n '/57$/p' fich_test_sed_phone.txt
  • grep -e '57$' fich_test_sed_phone.txt
  1. quelle commande ou série de commandes permet d’afficher les lignes dont les numéros de téléphones sont des téléphones portables (commançant par +336 ou +337)
  • awk -F: '/:\+33[67]/ ' fich_test_sed_phone.txt
  • grep -e ':+33[67]' fich_test_sed_phone.txt
  • sed -n -r '/\+33[67]/p' fich_test_sed_phone.txt

  1. Bash scripting

  2. 1-) Écrire un script bash nommé anagramme6.sh qui donne tous les mots de  6 lettres  que l’on peut former avec une série de 6 lettres donnés en argument (utiliser le fichier dictionnaire suivant sous Linux   /usr/share/dict/french)
  3.  Exemple :    ./anagram6.sh  bjnoru 
  4. affiche le mot bonjour
  5. fichier: anagram6.sh
  6. #!/bin/bash
  7. myvar=$1
  8. if test ${#myvar}=6
  9. then
  10.         cat french| grep -E -e "^.{6}$" | grep -E -i "^[$1]+$" | awk '{a[$0]=$0}END{print "les mots de 6 caractères trouvés sont:";for(i in a){print a[i]}}'
  11. fi
  12. 2-) Modifier le script précédent pour afficher les mots de 4 à 6 lettres
  13. exemple : ./anagram6.sh  bjnoru 
  14. fichier: anagram6_1.sh
  15. affiche les mots  jour, brou, bonjour, etc.
  16. #!/bin/bash
  17. myvar=$1
  18. if test ${#myvar}=6
  19.         then
  20.         cat french| grep -E -e "^.{4,6}$" | grep -E -i "^[$1]+$" | awk '{a[$0]=$0}END{print "les mots de 4 à 6 caractères trouvés sont:";for(i in a){print a[i]}}'
  21.         fi
  22. Crontab  

Donner la fréquence et l’heure d’exécution des commandes suivantes  de façon détaillée :

  •           1           1          1          1          1         commande1

- La “commande1” s’exécute tous les “dimanches 01 Janvier” à “01h 01min”

...

Télécharger au format  txt (6.9 Kb)   pdf (153.3 Kb)   docx (594.7 Kb)  
Voir 5 pages de plus »
Uniquement disponible sur LaDissertation.com