ENSI-II2 - Environnement Unix

Unix Programming, Scripting, AWK, SED · course

Voir tous les documents en systèmes d'exploitation et cloud

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