Correction Atelier 6 : Filtres et manipulation du texte
Exercice 1 :
1. Créer le fichier villes.txt contenant tous les gouvernorats de la Tunisie selon cette forme :
Numero : NomGouvernorat :PrefixeTelephone
1. Afficher villes.txt par page
~$ less viles.txt
1. Afficher les 10 premières lignes de villes.txt
~$ head villes.txt
1. Afficher les 4 dernières lignes de villes.txt
~$ tail –n 4 villes.txt
1. Afficher villes.txt sans ses 3 dernières lignes
~$ head –n -3 villes.txt
Publicité
1. Afficher villes.txt sans ses 5 premières lignes
~$ tail –n +6 villes.txt
1. Afficher les lignes de 7 à 13 de villes.txt.
~$ head –n 13 villes.txt| tail –n +7
1. Ajouter à la fin de villes.txt la ligne : 24 gouvernorats en Tunisie
~$ cat >>villes.txt
24 gouvernorats en Tunisie
ctrl-d
ou
~$ echo ’24 gouvernerats en Tunisie’ >>villes.txt
1. Afficher le nombre de lignes et de mots de villes.txt
~$ wc –lw villes.txt
Publicité
1. Découper le fichier villes.txt en des fichiers contenant 6 lignes au maximum.
~$ split –l 6 villes.txt
1. Vérifier le nombre de lignes de fichiers générés.
~$ wc –l xa\*
Exercice 2 :
1. Trier le fichier villes.txt selon le nom et enregistrer le résultat dans un nouveau fichier villesTriees.txt
~$ sort – t : -k2,2 villes.txt >villesTriees.txt
1. Supprimer la première ligne de villesTriees.txt
~$ tail –n +2 villesTriees.txt >villesTriees1.txt ; mv villesTriees1.txt villesTriees.txt
1. Supprimer le numéro de chaque ligne de villesTriees.txt et numéroter de nouveau sans utiliser vi
~$ cut –d : -f2,3 villesTriees.txt |nl >villesTriees1.txt; mv villesTriees1.txt villesTriees.txt
1. Créer le fichier villeReverse.txt contenant les lignes triées selon le nom par ordre décroissant et séparer les champs par # au lieu de :
Publicité
~$ sort – t : -r -k2,2 villes.txt | tr ‘ :’ ‘#’ >villesReverse.txt
1. Afficher seulement les noms de villes de villesReverse.txt
~$ cut –d# -f2 –output-delimiter ‘#’
1. Créer le fichier villesTotal.txt contenant les 3 premières lignes de tous les fichiers créés et sans entête
~$ head –q –n 3 villes\*.txt > villesTotal.txt
Exercice 3 : Utilisation de cut
1. Traitement de lignes
Le fichier /etc/passwd est organisé comme suit :
nom\_utilisateur : x : uuid : guid : commentaire : home : shell
Où : - nom\_utilisateur : le nom de l’utilisateur
- x : le mot de passe remplacé par x pour des raisons de sécurité
- uuid : numéro d’identifiant de l’utilisateur
- guid : numéro d’identifiant du groupe principal utilisateur
- commentaire : un commentaire (généralement le nom du groupe utilisateur)
- home : le répertoire de travail
1. Afficher uniquement les noms d’utilisateur et leur numéro
Publicité
~$ cut –d: -f1,3 /etc/passwd
1. Modifier la commande précédente pour que le nom et le numéro soient séparés par un #
~$ cut –d: -f1,3 –output-delimiter ‘#’ /etc/passwd
1. Traitement de caractères :
2. Afficher les informations détaillées du répertoire de travail
~$ ls -l
1. En supposant que la taille est comprise entre les caractères 23 et 30, et que le nom du fichier commence au caractère 45 et en combinant ls et cut, afficher uniquement la taille et le nom des fichiers/répertoires, séparés par un ‘-‘
~$ ls –l | cut –c23-30,45- --output-delimiter ‘-‘
1. Supprimer dans b. la première ligne, qui correspond à la ligne total.
~$ ls –l | cut –c23-30,45- --output-delimiter ‘-‘ | tail –n+2