ENSI-II2
Environnement Unix
Partie I : AWK
Exercice 1 :
En utilisant awk écrire des commandes ou des scripts réalisant les traitements suivants :
TP 4
1. Afficher la nième ligne d’un fichier.
2. Compter le nombre de mots d’un fichier.
3. Afficher les lignes de plus de 80 caractères.
4. Afficher les lignes qui contiennent exactement deux champs.
5. Afficher la liste des champs de chaque ligne dans un ordre inversé.
6. Compter le nombre de lignes qui contiennent la chaîne "l2ti".
7. Afficher toutes les lignes dont le premier champ est différent de celui de la ligne
précédente.
Exercice 2 :
Publicité
Ecrire un script qui permet d’afficher tous les mots qui contiennent trois lettres majuscules
adjacentes ou plus.
Exercice 3 :
Ecrire un script qui utilise awk pour afficher tous les fichiers qui sont accédés uniquement en
lecture par les autres utilisateurs.
Exercice 4 :
Ecrire un script qui utilise awk pour afficher les dates de connexion des utilisateurs qui sont
propriétaires des fichiers portant la permission de lecture pour les autres utilisateurs.
Exercice 5 :
Ecrire une commande permettant d’afficher toutes les lignes dont le premier champ est
différent de celui de la ligne précédente.
Exercice 6 :
Ecrire un script awk simulant la commande « uniq », en éliminant les lignes redondantes et
vides d’un fichier.
Exercice 7 :
Publicité
Ecrire un programme awk qui vérifie que tous les enregistrements (lignes) du fichier donné en
argument ont le même nombre de champs que le premier enregistrement. Le fichier donné en
paramètre utilise le séparateur de champs ":". Le script devra afficher pour chaque ligne
erronée son nombre de champs, afficher à la fin du programme le nombre total
d’enregistrements et éventuellement le nombre d’enregistrements erronés (ceux ayant un
nombre de champs différent du nombre de champs du premier enregistrement).
Exemples d’exécution :
$cat test
nom:prenom:ville:telephone:fax
berger:jaques:paris:0639442212:0122339845
ben said:hamadi :71221993::
H. IDOUDI
1
ENSI-II2
Environnement Unix
Publicité
durond:marcel:marseille
$awk –f count.awk test
Chaque enregistrement doit comporter 5 champs
Enregistrement 4 a 3 champs
Le fichier test possède 4 enregistrements
Le fichier test comporte 1 enregistrement(s) erroné(s)
$awk –f count.awk /etc/passwd
Chaque enregistrement doit comporter 7 champs
Le fichier /etc/passwd possède 45 enregistrements
Tous les enregistrements sont corrects.
Partie II : SED
Donner des commandes permettant de réaliser les traitements suivants :
1. Afficher des lignes contenant trois majuscules successives.
2. Remplacer les mots Computer ou comuter par COMPUTER.
3. Encadrer le premier nombre de chaque ligne avec des **
Publicité
4. Afficher un fichier à partir de la onzième ligne
5. Imprimer les lignes commençant par le mot From.
6. Supprimer les lignes contenant une chaîne donnée
7. Supprimer les lignes ne contenant pas une chaîne donnée
8. Tester les commandes suivantes et notez leurs significations
- sed "s/toto/TOTO/" fichier
- sed "s/toto/TOTO/3" fichier
- sed "s/toto/TOTO/g" fichier
- sed "s/toto/TOTO/w resultat" fichier
9. Inverser l’ordre de la première et la deuxième colonne d’un fichier.
10. Entourer chaque nombre contenu dans un fichier par deux a.
11. N’afficher que les lignes contenant le nombre 55 d’un fichier donné.
H. IDOUDI
2