Linux Commande
TD : Linux Commande. Recherche parmi 300 000+ dissertationsPar carmel sagbo • 28 Décembre 2018 • TD • 1 259 Mots (6 Pages) • 887 Vues
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 »
- En utilisant chacune des commandes sed , grep et awk
- 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
- 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
- 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
- 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
Bash scripting
- 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)
- Exemple : ./anagram6.sh bjnoru
- affiche le mot bonjour
- fichier: anagram6.sh
- #!/bin/bash
- myvar=$1
- if test ${#myvar}=6
- then
- 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]}}'
- fi
- 2-) Modifier le script précédent pour afficher les mots de 4 à 6 lettres
- exemple : ./anagram6.sh bjnoru
- fichier: anagram6_1.sh
- affiche les mots jour, brou, bonjour, etc.
- #!/bin/bash
- myvar=$1
- if test ${#myvar}=6
- then
- 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]}}'
- fi
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”
...