SlideShare une entreprise Scribd logo
1  sur  6
Télécharger pour lire hors ligne
Institut Supérieur des Etudes Technologiques de Jendouba
Département Technologies de l’Informatique
2ème
année Licence Appliquée
Atelier Système 2 (Linux)
Amir Souissi
TP N° 6
Filtres et Expressions Régulières
Objectifs
• Utiliser les commandes des filtres simples : sort, head, tail, more, tee, uniq, wc, tr, cut,
• Maitriser les expressions régulières (ou rationnelle),
• Utiliser les commandes de filtres à expressions régulières : find, grep,
• Utiliser les commandes find et grep avec –exec et xargs pour l’exécution de commandes et le passage
d’arguments,
• Effectuer des commandes complexes combinant redirection, tube et expressions régulières.
1) Les Filtres Simples
head et tail
Les commandes head et tail permettent d’afficher les n premières (respectivement dernières) lignes d’un fichier.
Afficher les 5 premières, puis les 5 dernières lignes du fichier /etc/passwd.
Afficher la 7ième ligne de ce fichier (et elle seule), en une seule ligne de commande.
more et less
La commande more et less permettent d’afficher un fichier page par page.
Afficher le contenu du fichier /etc/passwd page par page
sort
La commande sort permet de trier un fichier dans l’ordre croissant ou décroissant selon nue colonne.
Afficher les utilisateurs inscrits dans le fichier /etc/passwd dans l’ordre croissant des uid.
tee
La commande tee écrit l’entrée standard simultanément sur la sortie standard et sur le fichier passé en paramètre.
Écrire une commande qui affiche "Bonjour" à l’écran et en même temps crée un fichier nommé
"Salutation.txt" dont le contenu est le même message.
uniq
La commande uniq permet de détecter les lignes en doublons successifs dans les fichiers et de les supprimer (dans
le résultat et non pas dans le fichier)
Créer un fichier qui comporte des noms de personnes par ligne avec quelques noms en doublons.
Afficher dans la console la liste des noms sans doublons successifs.
Afficher le nombre d’occurrence de chaque ligne du fichier.
Afficher uniquement les lignes qui se répètent.
wc
La commande wc permet de compter le nombre de lignes, de mots ou de caractères depuis l’entrée standard ou un
fichier.
Compter le nombre d’utilisateurs et le nombre de groupes.
tr
La commande tr (translate) permet traiter une chaine de caractère par une autre chaine et le résultat est envoyé sur
la sortie standard. (les données à traiter sont redirigés en entrée par fichier)
Afficher le fichier /etc/passwd en remplaçant les caractères « ,,, » par des « ... » (dans le champ
commentaire).
Obtenir le résultat précédent page par page.
Que font les commandes suivantes :
tr 'a,/' 'A;_' < fich1 > fich2 avec fich1 est une copie du fichier /etc/group par redirection.
tr 'a-z' 'A-Z' < fich1 | tee fich2
tr –s [:blank:] ‘t’ < fich1 > fich2
tr –d [:digit:] < fich1 |sort | uniq > fich2
cut
La commande cut permet d’afficher une portion de chaque ligne du fichier passé en paramètre ou à défaut de
l’entrée standard. cut présente 2 formes suivant que l'on sélectionne des colonnes de caractères ou qu'on distingue
des champs séparés par un caractère précis.
Conserver uniquement les caractères 2 et 5 de chaque ligne du fichier.
Conserver les caractères du premier au troisième.
Conserver les caractères du troisième au dernier.
Que fait la commande suivante cut –d ":" –f 1,4 /etc/group
Afficher uniquement les login des utilisateurs inscrits dans /etc/passwd dans l’ordre décroissant.
2) Les Filtres à Expressions Régulières
Les expressions régulière (ou rationnelle) sont des suites de caractères ordinaires ou spéciaux qui ont des
significations particulières permettant de faire des sélections.
• ^ début de ligne
• . un caractère quelconque
• $ fin de ligne
• [...] plage de caractères permis
• [^...] plage de caractères interdits
• * 0 à n fois le caractère ou regroupement de caractères précédent
• c protection du caractère c
• {n} pour définir le nombre de répétition n du caractère placé devant
• {n,} pour définir le nombre de répétition n du caractère placé devant
• {n,x} entre n et x fois le caractère précédent
• (…) mémorisation d'une ER
• + une ou plus occurrences du caractère ou regroupement de caractères précédent
• ? 0 ou 1 occurrence du caractère ou regroupement de caractères précédent
• {n} pour définir le nombre de répétition n du caractère ou regroupement de caractères placé devant
• {n,} au moins n fois le caractère ou regroupement de caractères précédent
• {n,x} entre n et x fois le caractère ou regroupement de caractères précédent
Le caractère d’échappement «  »permet de ne pas interpréter le caractère suivant par le shell. (pour dire qu’il
fait partie de la syntaxe de la commande)
Exemples :
L'expression [a-z][a-z] * cherche les lignes contenant au minimum un caractère en minuscule. [a-z] caractère
permis, [a-z]* recherche d'occurrence des lettres permises (entre 0 et plus).
L'expression ^[0-9]{4}$ a pour signification, du début ^ à la fin du fichier $ ,recherche les nombres [0-9] de 4
chiffres {4}.
Commande FIND
La commande find permet de rechercher des fichiers et des répertoires. C’est une commande indispensable,
très puissante mais assez complexe car contient beaucoup d’options.
Syntaxe: find < répertoire de recherche> <option > <critère de recherche> <action sur le résultat trouvé>
Exemple : find / -name *.txt -print cherche tous les fichiers qui commencent par une suite de caractères et
se terminent par .txt puis les afficher.
Les options de find ne sont pas sur une seule lettre mais on prend le nom entier de l’option et avec un seul
tiret ( -) . (Contrairement aux autres commandes qui utilisent les doubles tirets (--)).
Remarque : pour ne pas avoir les messages d’erreurs de permissions non accordés, on utilise un sudo avant le find.
Options :
Option -lname : cherche dans les cibles les link (liens symboliques)
find / -lname lien* -print
Option -iname : pour faire uen recherche à partir d’une expression rationnelle.
find / -iname "[pt]louf.txt" -print qui commence par un p ou un t puis louf.txt
Option -type : indique à find quel type d’objet on recherche
find /home -name fich1 -type f -print f pour dire qu’on cherche que des fichiers. d pour les
répertoires. l pour les liens symboliques.
Options de recherche par date :
-atime : la dernière fois où le fichier ou dossier a été accédé
-ctime : la dernière fois où il a été changé de statut (permissions, propriétaire, …)
-mtime : le temps où on a modifié son contenu.
a c m
Signification accès changement de statut modification de contenu
Exprimé en jour atime ctime mtime
Exprimé en minute amin cmin mmin
Le chiffre qui suit –atime ou –ctime ou –mtime est exprimé en nombre de jours.
find /home -atime 1 -print tous les fichiers qui ont été accédé il y a un jour.
find /home -amin 1 -print tous les fichiers qui ont été modifiés il y a une minute.
Pour la valeur on peut lui ajouter un + ou un -. (+1 veut dire plus d’un jour et -1 veut dire moins d’un jour)
Option -newer : cherche les fichiers qui ont été modifiés après fich1.
Option -anewer : chercher tous les fichiers qui ont été accédés après fich1.
Option -cnewer : pour les fichiers changés après fich1
sudo find . -anewer fich1 -print
Option -size : recherche par taille
Les valeurs possibles de –size sont b pour bloc c pour caractère (octet) et k pour kilooctet
find . -size 12k -print les fichiers qui font 12 kilo octets. (+12k pour plus de 12 kilooctets,
et -12k pour moins de 12 kilooctets)
Option -empty : cherche les fichiers qui sont vides. (taille 0)
find ~ -empty -print
on peut combiner plusieurs critères :
find ~ -empty -name *sources* -type f -print chercher tous les objets de type fichier qui
sont vides et dont le nom contient le mot sources.
Exécuter des commandes sur le résultat de find : l’option -exec et la commande xargs
Rappel : find < répertoire de recherche> <option > <critère de recherche> <action sur le résultat trouvé>
-exec commande
-print est une option de commande qui permet de réaliser l’action d’affichage sur le résultat trouvé par la
recherche.
Pour réaliser une action sur les fichiers trouvés (de copie, de suppression, …), on utilise l’option -exec suivie
de la commande à réaliser.
Le fichier en cours sur lequel portera l’action de la commande après le –exec est repéré par les {} et elle doit
se terminer par un ; précédé par le caractère d’échappement .
Exemple : find . -name fich* -exec rm {}  ; Effacer les fichiers qui commencent par fich du rep. courant.
Pourquoi selon vous doit on précéder le ; par un backslash ?
La solution avec –exec est lourde car elle crée un processus pour chaque fichier traité.
xargs commande
On peut rediriger le résultat de find avec un pipe et xargs.
La commande xargs sert à convertir l’output d’une commande en une suite d’arguments pour les envoyer à
une autre commande. Elle s’utilise après le pipe d’une commande.
find . mtime +30 -name '*~' | xargs rm
Que fait cette commande?
Ajouter l’option –p à xargs et commenter ?
Exercice A : Commande find
1. Afficher la liste des fichiers .config situés sous le répertoire /usr/include.
2. Afficher la liste des fichiers plus vieux que 3 jours situés sous votre répertoire de connexion.
3. Afficher la liste des fichiers de /usr/include dont le nom commence par a, b ou c.
4. Modifier la commande de la question précédente pour qu'au lieu d’afficher le résultat, celui-ci soit placé
dans un fichier nommé "Abc.list" de votre répertoire de connexion.
5. Chercher les fichiers .tex modifiés plus récemment que bofichier.tex, mais il y a plus de 5 jours.
6. Rechercher un fichier modifié il y a moins de 12 jours et dont la taille soit supérieure à 30 K
7. Comment chercher tous les fichiers dont les noms commençant par un «a» majuscule ou une minuscule,
suivi d'éventuellement quelques lettres ou chiffres, et se terminent par un chiffre entre 3 et 6.
8. Trouver les répertoires vides sous le répertoire personnel puis les supprimer.
Commande GREP
Une autre commande très utilisée et très pratique est la commande grep. Elle sert à faire une recherche à l’intérieur
d’un ou de plusieurs fichiers.
Pour mieux exploiter grep, il faut maitriser les expressions régulières.
Syntaxe : grep <patern en expression régulière> <où chercher>
Exemples : grep "^#" /etc/fstab chercher toutes les lignes qui commencent par un # (les commentaires) dans
fstab.
grep "PATH" /etc/* cherche le mot PATH dans tous les fichiers du répertoire /etc.
Remarque : Le pattern trouvé est coloré en rouge dans le résultat trouvé par grep.
Exemples : grep "print" /etc/fstab afficher les lignes qui contiennent le mot « print »
grep "^#$" /etc/fstab afficher les lignes avec des commentaires vides.
grep "^$" /etc/fstab afficher les lignes vides
Attention ! Les critères de recherches sont sensibles à la casse.
Option -i : rendre la recherche non sensible à la casse.
grep –i "Print" /etc/fstab insensible à la casse. Un Print avec P équivaut un print avec p.
Option –v : renverse le critère de recherche (donne l’inverse)
grep –iv "Print" /etc/fstab affiche toutes les lignes qui ne comportent pas le mot « print »
insensible à la casse.
Option –c : donne le nombre de lignes qui ont été trouvés (c comme count).
grep –ivc "Print" /etc/fstab nombre de lignes qui ne comportent pas un « print » insensible à la
casse.
Option –n : affiche en plus le numéro de la ligne trouvée.
Option -w: cherche le mot complet correspondant au critère et non pas une partie du mot.
sudo grep –iw "Print" . Chercher le mot print dans tous les fichiers du répertoire courant.
Option -l : donne seulement le nom du fichier dans lequel on a trouvé une correspondance avec le
critère.
Option -r : fait une recherche récursive dans tous les sous répertoires.
Remarques :
La variante egrep utilise une syntaxe étendue d’expression régulière.
La variante fgrep n’utilise pas d’expression régulière mais une liste de mots pour un usage plus simple.
Exercice B : commande grep
1. Trouver les lignes vides
2. Chaine contenant au minimum 3 « p »
3. Mot terminé par « age »
4. Mot terminé par « guage » ou « gage »
5. Chaine contenant « rla »
6. Lignes terminées par « ans »
7. Chaines contenant les sous-chaines « alpha » ou « exe »
8. Ligne ne commençant pas par un chiffre
9. Ligne commençant par une voyelle ou un chiffre
10. Ligne ne commençant pas par une voyelle
11. Ligne commençant ou se terminant par un chiffre
12. Les lignes sui font moins de 10 caractères.
Exercice C : Combiner find, grep, xargs et le pipe
1. Chercher les fichiers cachés (dont le nom commence par un .) dans le répertoire courant, et qui contiennent
le mot « term » pour ensuite les supprimer.
2. find ~ -type f -exec grep -il ‘term’ {} ; Que fait cette commande ? réaliser la même chose avec un
pipe.
3. Rechercher dans le répertoire courant tous les fichiers normaux (sans les répertoires, fichiers spéciaux), et
rechercher dans ces fichiers tous ceux contenant la chaîne toto.
4. Testez la commande : find . -type f | xargs grep matrice, puis la commande find . -type f | grep matrice.
Remarquez les résultats.
5. Vous chercherez dans votre répertoire «fic_C» les fichiers d'extension «.c» dans lesquels se trouvent une
ligne contenant l'instruction «if» et afficherez les lignes. Pour cela vous utiliserez 2 méthodes, une avec le
pipe et l'autre avec l'option «exec». Quelles sont les différences.
6. Rechercher tous les fichiers d'anciennes sauvegardes (qui terminent par '' ~'') qui ont été créés les 5 derniers
jours ou depuis au moins 10 jours, et supprimer ceux qui contiennent au moins un ''if''.

Contenu connexe

Tendances

Cours linux complet
Cours linux completCours linux complet
Cours linux completaubin82
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-CorrectionLilia Sfaxi
 
Systèmes d'Exploitation - chp3-gestion mémoire
Systèmes d'Exploitation - chp3-gestion mémoireSystèmes d'Exploitation - chp3-gestion mémoire
Systèmes d'Exploitation - chp3-gestion mémoireLilia Sfaxi
 
Cours langage c
Cours langage cCours langage c
Cours langage ccoursuniv
 
Python For Data Science - French Course
Python For Data Science - French CoursePython For Data Science - French Course
Python For Data Science - French CourseHaytam EL YOUSSFI
 
Administration réseaux sous linux cours 1
Administration réseaux sous linux   cours 1Administration réseaux sous linux   cours 1
Administration réseaux sous linux cours 1Stephen Salama
 
les systèmes d'exploitation.ppt
les systèmes d'exploitation.pptles systèmes d'exploitation.ppt
les systèmes d'exploitation.pptPROFPROF11
 
Notes de cours et tp - Administation Systèmes
Notes de cours et tp  - Administation Systèmes Notes de cours et tp  - Administation Systèmes
Notes de cours et tp - Administation Systèmes Ikram Benabdelouahab
 
Fascicule de tp atelier développement web
Fascicule de tp atelier développement webFascicule de tp atelier développement web
Fascicule de tp atelier développement webHouda TOUKABRI
 
Formation Linux - Initiation
Formation Linux - InitiationFormation Linux - Initiation
Formation Linux - Initiationrobertpluss
 
Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Ines Ouaz
 
TP1 Big Data - MapReduce
TP1 Big Data - MapReduceTP1 Big Data - MapReduce
TP1 Big Data - MapReduceAmal Abid
 
Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLwebreaker
 
Cours réseaux informatiques ia2
Cours réseaux informatiques  ia2Cours réseaux informatiques  ia2
Cours réseaux informatiques ia2Amel Morchdi
 
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)Faycel Chaoua
 
TP sous linux
TP sous linuxTP sous linux
TP sous linuxImnaTech
 
gestion de magasin vente matériels informatique
gestion de magasin vente matériels informatiquegestion de magasin vente matériels informatique
gestion de magasin vente matériels informatiqueOussama Yoshiki
 
BigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataLilia Sfaxi
 
Etude d'une application de gestion d'une bibliothèque numérique
Etude d'une application de gestion d'une bibliothèque numérique Etude d'une application de gestion d'une bibliothèque numérique
Etude d'une application de gestion d'une bibliothèque numérique Georges Amichia
 

Tendances (20)

Cours linux complet
Cours linux completCours linux complet
Cours linux complet
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
 
Systèmes d'Exploitation - chp3-gestion mémoire
Systèmes d'Exploitation - chp3-gestion mémoireSystèmes d'Exploitation - chp3-gestion mémoire
Systèmes d'Exploitation - chp3-gestion mémoire
 
Cours langage c
Cours langage cCours langage c
Cours langage c
 
Python For Data Science - French Course
Python For Data Science - French CoursePython For Data Science - French Course
Python For Data Science - French Course
 
Administration réseaux sous linux cours 1
Administration réseaux sous linux   cours 1Administration réseaux sous linux   cours 1
Administration réseaux sous linux cours 1
 
les systèmes d'exploitation.ppt
les systèmes d'exploitation.pptles systèmes d'exploitation.ppt
les systèmes d'exploitation.ppt
 
Notes de cours et tp - Administation Systèmes
Notes de cours et tp  - Administation Systèmes Notes de cours et tp  - Administation Systèmes
Notes de cours et tp - Administation Systèmes
 
Fascicule de tp atelier développement web
Fascicule de tp atelier développement webFascicule de tp atelier développement web
Fascicule de tp atelier développement web
 
Formation Linux - Initiation
Formation Linux - InitiationFormation Linux - Initiation
Formation Linux - Initiation
 
Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)
 
TP1 Big Data - MapReduce
TP1 Big Data - MapReduceTP1 Big Data - MapReduce
TP1 Big Data - MapReduce
 
Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQL
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
Cours réseaux informatiques ia2
Cours réseaux informatiques  ia2Cours réseaux informatiques  ia2
Cours réseaux informatiques ia2
 
Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)Support du cours : Systèmes d'exploitation 2 (linux)
Support du cours : Systèmes d'exploitation 2 (linux)
 
TP sous linux
TP sous linuxTP sous linux
TP sous linux
 
gestion de magasin vente matériels informatique
gestion de magasin vente matériels informatiquegestion de magasin vente matériels informatique
gestion de magasin vente matériels informatique
 
BigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big Data
 
Etude d'une application de gestion d'une bibliothèque numérique
Etude d'une application de gestion d'une bibliothèque numérique Etude d'une application de gestion d'une bibliothèque numérique
Etude d'une application de gestion d'une bibliothèque numérique
 

Similaire à Tp n 6 linux

0079-cours-linux-base.ppt
0079-cours-linux-base.ppt0079-cours-linux-base.ppt
0079-cours-linux-base.pptAugustoMoundoh1
 
0079-cours-linux-base.ppt
0079-cours-linux-base.ppt0079-cours-linux-base.ppt
0079-cours-linux-base.pptMahdiHERMASSI1
 
programmation_shell_2022 (1).pptx
programmation_shell_2022 (1).pptxprogrammation_shell_2022 (1).pptx
programmation_shell_2022 (1).pptxManalAg
 
Processus pére fils
Processus pére filsProcessus pére fils
Processus pére filsSelman Dridi
 
Rapport des Travaux Pratiques UNIX
Rapport des Travaux Pratiques UNIXRapport des Travaux Pratiques UNIX
Rapport des Travaux Pratiques UNIXSoukaina Boujadi
 
Petit precis des_commandes_unix_utiles_a_ubuntu
Petit precis des_commandes_unix_utiles_a_ubuntuPetit precis des_commandes_unix_utiles_a_ubuntu
Petit precis des_commandes_unix_utiles_a_ubuntuEl7fe Eternal
 
Cmd dos sous windows
Cmd dos sous windowsCmd dos sous windows
Cmd dos sous windowsSelman Dridi
 
les Commandes linux/Unix (giants networks)
les Commandes linux/Unix (giants networks)les Commandes linux/Unix (giants networks)
les Commandes linux/Unix (giants networks)Souhaib El
 
Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4Laurent BUNIET
 
Développement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulièresDéveloppement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulièresECAM Brussels Engineering School
 
Scripting Linux avec Python partie1.pptx
Scripting Linux avec Python partie1.pptxScripting Linux avec Python partie1.pptx
Scripting Linux avec Python partie1.pptxFrancisRUKAN
 
Exploration et visualisation de fichiers XML avec BaseX
Exploration et visualisation de fichiers XML avec BaseXExploration et visualisation de fichiers XML avec BaseX
Exploration et visualisation de fichiers XML avec BaseXEmmanuelle Morlock
 

Similaire à Tp n 6 linux (20)

Commande linux
Commande linuxCommande linux
Commande linux
 
0079-cours-linux-base.ppt
0079-cours-linux-base.ppt0079-cours-linux-base.ppt
0079-cours-linux-base.ppt
 
0079-cours-linux-base.ppt
0079-cours-linux-base.ppt0079-cours-linux-base.ppt
0079-cours-linux-base.ppt
 
programmation_shell_2022 (1).pptx
programmation_shell_2022 (1).pptxprogrammation_shell_2022 (1).pptx
programmation_shell_2022 (1).pptx
 
Processus pére fils
Processus pére filsProcessus pére fils
Processus pére fils
 
Rapport des Travaux Pratiques UNIX
Rapport des Travaux Pratiques UNIXRapport des Travaux Pratiques UNIX
Rapport des Travaux Pratiques UNIX
 
Petit precis des_commandes_unix_utiles_a_ubuntu
Petit precis des_commandes_unix_utiles_a_ubuntuPetit precis des_commandes_unix_utiles_a_ubuntu
Petit precis des_commandes_unix_utiles_a_ubuntu
 
Cmd dos sous windows
Cmd dos sous windowsCmd dos sous windows
Cmd dos sous windows
 
les Commandes linux/Unix (giants networks)
les Commandes linux/Unix (giants networks)les Commandes linux/Unix (giants networks)
les Commandes linux/Unix (giants networks)
 
s de base
s de bases de base
s de base
 
Bash bonnes pratiques
Bash bonnes pratiquesBash bonnes pratiques
Bash bonnes pratiques
 
Chapitre_Shell.pdf
Chapitre_Shell.pdfChapitre_Shell.pdf
Chapitre_Shell.pdf
 
Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4
 
Introduction à Python
Introduction à PythonIntroduction à Python
Introduction à Python
 
COURS_PYTHON_22.ppt
COURS_PYTHON_22.pptCOURS_PYTHON_22.ppt
COURS_PYTHON_22.ppt
 
Développement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulièresDéveloppement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulières
 
Rapport Projet Module Complexité
Rapport Projet Module ComplexitéRapport Projet Module Complexité
Rapport Projet Module Complexité
 
Rar
RarRar
Rar
 
Scripting Linux avec Python partie1.pptx
Scripting Linux avec Python partie1.pptxScripting Linux avec Python partie1.pptx
Scripting Linux avec Python partie1.pptx
 
Exploration et visualisation de fichiers XML avec BaseX
Exploration et visualisation de fichiers XML avec BaseXExploration et visualisation de fichiers XML avec BaseX
Exploration et visualisation de fichiers XML avec BaseX
 

Plus de Amir Souissi

Chap5 diagramme d'etats-transitions
Chap5 diagramme d'etats-transitionsChap5 diagramme d'etats-transitions
Chap5 diagramme d'etats-transitionsAmir Souissi
 
Chapitre 6 traitement des exceptions
Chapitre 6  traitement des exceptionsChapitre 6  traitement des exceptions
Chapitre 6 traitement des exceptionsAmir Souissi
 
Chapitre 5 classes abstraites et interfaces
Chapitre 5  classes abstraites et interfacesChapitre 5  classes abstraites et interfaces
Chapitre 5 classes abstraites et interfacesAmir Souissi
 
Chapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeChapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeAmir Souissi
 
Chapitre 3 elements de base de java
Chapitre 3  elements de base de javaChapitre 3  elements de base de java
Chapitre 3 elements de base de javaAmir Souissi
 
Chapitre 4 persistance des donnees
Chapitre 4  persistance des donneesChapitre 4  persistance des donnees
Chapitre 4 persistance des donneesAmir Souissi
 
Chapitre 3 activites et intents
Chapitre 3   activites et  intentsChapitre 3   activites et  intents
Chapitre 3 activites et intentsAmir Souissi
 
Chapitre 2 classe et objet
Chapitre 2   classe et objetChapitre 2   classe et objet
Chapitre 2 classe et objetAmir Souissi
 
Chapitre 1 introduction generale
Chapitre 1   introduction generaleChapitre 1   introduction generale
Chapitre 1 introduction generaleAmir Souissi
 
Chapitre 2 elements graphiques android
Chapitre 2   elements graphiques androidChapitre 2   elements graphiques android
Chapitre 2 elements graphiques androidAmir Souissi
 
Chapitre 1 decouverte du developpement android
Chapitre 1  decouverte du developpement androidChapitre 1  decouverte du developpement android
Chapitre 1 decouverte du developpement androidAmir Souissi
 
Atelier symfony n 3
Atelier symfony n 3Atelier symfony n 3
Atelier symfony n 3Amir Souissi
 
Atelier symfony n 2
Atelier symfony n 2Atelier symfony n 2
Atelier symfony n 2Amir Souissi
 
Atelier symfony n 1
Atelier symfony n 1Atelier symfony n 1
Atelier symfony n 1Amir Souissi
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UMLAmir Souissi
 
diagramme de classe
diagramme de classediagramme de classe
diagramme de classeAmir Souissi
 
diagramme des cas d'utilisation
diagramme des cas d'utilisationdiagramme des cas d'utilisation
diagramme des cas d'utilisationAmir Souissi
 
introduction à la modélisation objet
introduction à la modélisation objetintroduction à la modélisation objet
introduction à la modélisation objetAmir Souissi
 

Plus de Amir Souissi (18)

Chap5 diagramme d'etats-transitions
Chap5 diagramme d'etats-transitionsChap5 diagramme d'etats-transitions
Chap5 diagramme d'etats-transitions
 
Chapitre 6 traitement des exceptions
Chapitre 6  traitement des exceptionsChapitre 6  traitement des exceptions
Chapitre 6 traitement des exceptions
 
Chapitre 5 classes abstraites et interfaces
Chapitre 5  classes abstraites et interfacesChapitre 5  classes abstraites et interfaces
Chapitre 5 classes abstraites et interfaces
 
Chapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeChapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphisme
 
Chapitre 3 elements de base de java
Chapitre 3  elements de base de javaChapitre 3  elements de base de java
Chapitre 3 elements de base de java
 
Chapitre 4 persistance des donnees
Chapitre 4  persistance des donneesChapitre 4  persistance des donnees
Chapitre 4 persistance des donnees
 
Chapitre 3 activites et intents
Chapitre 3   activites et  intentsChapitre 3   activites et  intents
Chapitre 3 activites et intents
 
Chapitre 2 classe et objet
Chapitre 2   classe et objetChapitre 2   classe et objet
Chapitre 2 classe et objet
 
Chapitre 1 introduction generale
Chapitre 1   introduction generaleChapitre 1   introduction generale
Chapitre 1 introduction generale
 
Chapitre 2 elements graphiques android
Chapitre 2   elements graphiques androidChapitre 2   elements graphiques android
Chapitre 2 elements graphiques android
 
Chapitre 1 decouverte du developpement android
Chapitre 1  decouverte du developpement androidChapitre 1  decouverte du developpement android
Chapitre 1 decouverte du developpement android
 
Atelier symfony n 3
Atelier symfony n 3Atelier symfony n 3
Atelier symfony n 3
 
Atelier symfony n 2
Atelier symfony n 2Atelier symfony n 2
Atelier symfony n 2
 
Atelier symfony n 1
Atelier symfony n 1Atelier symfony n 1
Atelier symfony n 1
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UML
 
diagramme de classe
diagramme de classediagramme de classe
diagramme de classe
 
diagramme des cas d'utilisation
diagramme des cas d'utilisationdiagramme des cas d'utilisation
diagramme des cas d'utilisation
 
introduction à la modélisation objet
introduction à la modélisation objetintroduction à la modélisation objet
introduction à la modélisation objet
 

Dernier

PIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfPIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfRiDaHAziz
 
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfLa Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfbdp12
 
Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...
Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...
Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...NaimDoumissi
 
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 37
 
Bernard Réquichot.pptx Peintre français
Bernard Réquichot.pptx   Peintre françaisBernard Réquichot.pptx   Peintre français
Bernard Réquichot.pptx Peintre françaisTxaruka
 
Chana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneChana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneTxaruka
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx      Film   françaisPas de vagues.  pptx      Film   français
Pas de vagues. pptx Film françaisTxaruka
 
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptxPrésentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptxJCAC
 
PIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfPIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfRiDaHAziz
 
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...Bibdoc 37
 
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdfVulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdfSylvianeBachy
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx   Film     françaisPas de vagues.  pptx   Film     français
Pas de vagues. pptx Film françaisTxaruka
 
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 37
 
Apprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceursApprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceursStagiaireLearningmat
 
Cours de Management des Systèmes d'information
Cours de Management des Systèmes d'informationCours de Management des Systèmes d'information
Cours de Management des Systèmes d'informationpapediallo3
 
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptxDIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptxMartin M Flynn
 
Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)Gabriel Gay-Para
 

Dernier (18)

PIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfPIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdf
 
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfLa Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
 
Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...
Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...
Potentiel du Maroc en Produits du Terroir et Stratégie Adoptée pour le dévelo...
 
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
 
Bernard Réquichot.pptx Peintre français
Bernard Réquichot.pptx   Peintre françaisBernard Réquichot.pptx   Peintre français
Bernard Réquichot.pptx Peintre français
 
Chana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneChana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienne
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx      Film   françaisPas de vagues.  pptx      Film   français
Pas de vagues. pptx Film français
 
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptxPrésentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
 
Bulletin des bibliotheques Burkina Faso mars 2024
Bulletin des bibliotheques Burkina Faso mars 2024Bulletin des bibliotheques Burkina Faso mars 2024
Bulletin des bibliotheques Burkina Faso mars 2024
 
PIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfPIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdf
 
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
 
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdfVulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx   Film     françaisPas de vagues.  pptx   Film     français
Pas de vagues. pptx Film français
 
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
 
Apprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceursApprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceurs
 
Cours de Management des Systèmes d'information
Cours de Management des Systèmes d'informationCours de Management des Systèmes d'information
Cours de Management des Systèmes d'information
 
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptxDIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
 
Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)
 

Tp n 6 linux

  • 1. Institut Supérieur des Etudes Technologiques de Jendouba Département Technologies de l’Informatique 2ème année Licence Appliquée Atelier Système 2 (Linux) Amir Souissi TP N° 6 Filtres et Expressions Régulières Objectifs • Utiliser les commandes des filtres simples : sort, head, tail, more, tee, uniq, wc, tr, cut, • Maitriser les expressions régulières (ou rationnelle), • Utiliser les commandes de filtres à expressions régulières : find, grep, • Utiliser les commandes find et grep avec –exec et xargs pour l’exécution de commandes et le passage d’arguments, • Effectuer des commandes complexes combinant redirection, tube et expressions régulières. 1) Les Filtres Simples head et tail Les commandes head et tail permettent d’afficher les n premières (respectivement dernières) lignes d’un fichier. Afficher les 5 premières, puis les 5 dernières lignes du fichier /etc/passwd. Afficher la 7ième ligne de ce fichier (et elle seule), en une seule ligne de commande. more et less La commande more et less permettent d’afficher un fichier page par page. Afficher le contenu du fichier /etc/passwd page par page sort La commande sort permet de trier un fichier dans l’ordre croissant ou décroissant selon nue colonne. Afficher les utilisateurs inscrits dans le fichier /etc/passwd dans l’ordre croissant des uid. tee La commande tee écrit l’entrée standard simultanément sur la sortie standard et sur le fichier passé en paramètre. Écrire une commande qui affiche "Bonjour" à l’écran et en même temps crée un fichier nommé "Salutation.txt" dont le contenu est le même message. uniq La commande uniq permet de détecter les lignes en doublons successifs dans les fichiers et de les supprimer (dans le résultat et non pas dans le fichier) Créer un fichier qui comporte des noms de personnes par ligne avec quelques noms en doublons. Afficher dans la console la liste des noms sans doublons successifs. Afficher le nombre d’occurrence de chaque ligne du fichier. Afficher uniquement les lignes qui se répètent.
  • 2. wc La commande wc permet de compter le nombre de lignes, de mots ou de caractères depuis l’entrée standard ou un fichier. Compter le nombre d’utilisateurs et le nombre de groupes. tr La commande tr (translate) permet traiter une chaine de caractère par une autre chaine et le résultat est envoyé sur la sortie standard. (les données à traiter sont redirigés en entrée par fichier) Afficher le fichier /etc/passwd en remplaçant les caractères « ,,, » par des « ... » (dans le champ commentaire). Obtenir le résultat précédent page par page. Que font les commandes suivantes : tr 'a,/' 'A;_' < fich1 > fich2 avec fich1 est une copie du fichier /etc/group par redirection. tr 'a-z' 'A-Z' < fich1 | tee fich2 tr –s [:blank:] ‘t’ < fich1 > fich2 tr –d [:digit:] < fich1 |sort | uniq > fich2 cut La commande cut permet d’afficher une portion de chaque ligne du fichier passé en paramètre ou à défaut de l’entrée standard. cut présente 2 formes suivant que l'on sélectionne des colonnes de caractères ou qu'on distingue des champs séparés par un caractère précis. Conserver uniquement les caractères 2 et 5 de chaque ligne du fichier. Conserver les caractères du premier au troisième. Conserver les caractères du troisième au dernier. Que fait la commande suivante cut –d ":" –f 1,4 /etc/group Afficher uniquement les login des utilisateurs inscrits dans /etc/passwd dans l’ordre décroissant. 2) Les Filtres à Expressions Régulières Les expressions régulière (ou rationnelle) sont des suites de caractères ordinaires ou spéciaux qui ont des significations particulières permettant de faire des sélections. • ^ début de ligne • . un caractère quelconque • $ fin de ligne • [...] plage de caractères permis • [^...] plage de caractères interdits • * 0 à n fois le caractère ou regroupement de caractères précédent • c protection du caractère c • {n} pour définir le nombre de répétition n du caractère placé devant • {n,} pour définir le nombre de répétition n du caractère placé devant • {n,x} entre n et x fois le caractère précédent • (…) mémorisation d'une ER • + une ou plus occurrences du caractère ou regroupement de caractères précédent • ? 0 ou 1 occurrence du caractère ou regroupement de caractères précédent • {n} pour définir le nombre de répétition n du caractère ou regroupement de caractères placé devant • {n,} au moins n fois le caractère ou regroupement de caractères précédent • {n,x} entre n et x fois le caractère ou regroupement de caractères précédent
  • 3. Le caractère d’échappement « »permet de ne pas interpréter le caractère suivant par le shell. (pour dire qu’il fait partie de la syntaxe de la commande) Exemples : L'expression [a-z][a-z] * cherche les lignes contenant au minimum un caractère en minuscule. [a-z] caractère permis, [a-z]* recherche d'occurrence des lettres permises (entre 0 et plus). L'expression ^[0-9]{4}$ a pour signification, du début ^ à la fin du fichier $ ,recherche les nombres [0-9] de 4 chiffres {4}. Commande FIND La commande find permet de rechercher des fichiers et des répertoires. C’est une commande indispensable, très puissante mais assez complexe car contient beaucoup d’options. Syntaxe: find < répertoire de recherche> <option > <critère de recherche> <action sur le résultat trouvé> Exemple : find / -name *.txt -print cherche tous les fichiers qui commencent par une suite de caractères et se terminent par .txt puis les afficher. Les options de find ne sont pas sur une seule lettre mais on prend le nom entier de l’option et avec un seul tiret ( -) . (Contrairement aux autres commandes qui utilisent les doubles tirets (--)). Remarque : pour ne pas avoir les messages d’erreurs de permissions non accordés, on utilise un sudo avant le find. Options : Option -lname : cherche dans les cibles les link (liens symboliques) find / -lname lien* -print Option -iname : pour faire uen recherche à partir d’une expression rationnelle. find / -iname "[pt]louf.txt" -print qui commence par un p ou un t puis louf.txt Option -type : indique à find quel type d’objet on recherche find /home -name fich1 -type f -print f pour dire qu’on cherche que des fichiers. d pour les répertoires. l pour les liens symboliques. Options de recherche par date : -atime : la dernière fois où le fichier ou dossier a été accédé -ctime : la dernière fois où il a été changé de statut (permissions, propriétaire, …) -mtime : le temps où on a modifié son contenu. a c m Signification accès changement de statut modification de contenu Exprimé en jour atime ctime mtime Exprimé en minute amin cmin mmin Le chiffre qui suit –atime ou –ctime ou –mtime est exprimé en nombre de jours. find /home -atime 1 -print tous les fichiers qui ont été accédé il y a un jour. find /home -amin 1 -print tous les fichiers qui ont été modifiés il y a une minute. Pour la valeur on peut lui ajouter un + ou un -. (+1 veut dire plus d’un jour et -1 veut dire moins d’un jour)
  • 4. Option -newer : cherche les fichiers qui ont été modifiés après fich1. Option -anewer : chercher tous les fichiers qui ont été accédés après fich1. Option -cnewer : pour les fichiers changés après fich1 sudo find . -anewer fich1 -print Option -size : recherche par taille Les valeurs possibles de –size sont b pour bloc c pour caractère (octet) et k pour kilooctet find . -size 12k -print les fichiers qui font 12 kilo octets. (+12k pour plus de 12 kilooctets, et -12k pour moins de 12 kilooctets) Option -empty : cherche les fichiers qui sont vides. (taille 0) find ~ -empty -print on peut combiner plusieurs critères : find ~ -empty -name *sources* -type f -print chercher tous les objets de type fichier qui sont vides et dont le nom contient le mot sources. Exécuter des commandes sur le résultat de find : l’option -exec et la commande xargs Rappel : find < répertoire de recherche> <option > <critère de recherche> <action sur le résultat trouvé> -exec commande -print est une option de commande qui permet de réaliser l’action d’affichage sur le résultat trouvé par la recherche. Pour réaliser une action sur les fichiers trouvés (de copie, de suppression, …), on utilise l’option -exec suivie de la commande à réaliser. Le fichier en cours sur lequel portera l’action de la commande après le –exec est repéré par les {} et elle doit se terminer par un ; précédé par le caractère d’échappement . Exemple : find . -name fich* -exec rm {} ; Effacer les fichiers qui commencent par fich du rep. courant. Pourquoi selon vous doit on précéder le ; par un backslash ? La solution avec –exec est lourde car elle crée un processus pour chaque fichier traité. xargs commande On peut rediriger le résultat de find avec un pipe et xargs. La commande xargs sert à convertir l’output d’une commande en une suite d’arguments pour les envoyer à une autre commande. Elle s’utilise après le pipe d’une commande. find . mtime +30 -name '*~' | xargs rm Que fait cette commande? Ajouter l’option –p à xargs et commenter ?
  • 5. Exercice A : Commande find 1. Afficher la liste des fichiers .config situés sous le répertoire /usr/include. 2. Afficher la liste des fichiers plus vieux que 3 jours situés sous votre répertoire de connexion. 3. Afficher la liste des fichiers de /usr/include dont le nom commence par a, b ou c. 4. Modifier la commande de la question précédente pour qu'au lieu d’afficher le résultat, celui-ci soit placé dans un fichier nommé "Abc.list" de votre répertoire de connexion. 5. Chercher les fichiers .tex modifiés plus récemment que bofichier.tex, mais il y a plus de 5 jours. 6. Rechercher un fichier modifié il y a moins de 12 jours et dont la taille soit supérieure à 30 K 7. Comment chercher tous les fichiers dont les noms commençant par un «a» majuscule ou une minuscule, suivi d'éventuellement quelques lettres ou chiffres, et se terminent par un chiffre entre 3 et 6. 8. Trouver les répertoires vides sous le répertoire personnel puis les supprimer. Commande GREP Une autre commande très utilisée et très pratique est la commande grep. Elle sert à faire une recherche à l’intérieur d’un ou de plusieurs fichiers. Pour mieux exploiter grep, il faut maitriser les expressions régulières. Syntaxe : grep <patern en expression régulière> <où chercher> Exemples : grep "^#" /etc/fstab chercher toutes les lignes qui commencent par un # (les commentaires) dans fstab. grep "PATH" /etc/* cherche le mot PATH dans tous les fichiers du répertoire /etc. Remarque : Le pattern trouvé est coloré en rouge dans le résultat trouvé par grep. Exemples : grep "print" /etc/fstab afficher les lignes qui contiennent le mot « print » grep "^#$" /etc/fstab afficher les lignes avec des commentaires vides. grep "^$" /etc/fstab afficher les lignes vides Attention ! Les critères de recherches sont sensibles à la casse. Option -i : rendre la recherche non sensible à la casse. grep –i "Print" /etc/fstab insensible à la casse. Un Print avec P équivaut un print avec p. Option –v : renverse le critère de recherche (donne l’inverse) grep –iv "Print" /etc/fstab affiche toutes les lignes qui ne comportent pas le mot « print » insensible à la casse. Option –c : donne le nombre de lignes qui ont été trouvés (c comme count). grep –ivc "Print" /etc/fstab nombre de lignes qui ne comportent pas un « print » insensible à la casse. Option –n : affiche en plus le numéro de la ligne trouvée. Option -w: cherche le mot complet correspondant au critère et non pas une partie du mot. sudo grep –iw "Print" . Chercher le mot print dans tous les fichiers du répertoire courant.
  • 6. Option -l : donne seulement le nom du fichier dans lequel on a trouvé une correspondance avec le critère. Option -r : fait une recherche récursive dans tous les sous répertoires. Remarques : La variante egrep utilise une syntaxe étendue d’expression régulière. La variante fgrep n’utilise pas d’expression régulière mais une liste de mots pour un usage plus simple. Exercice B : commande grep 1. Trouver les lignes vides 2. Chaine contenant au minimum 3 « p » 3. Mot terminé par « age » 4. Mot terminé par « guage » ou « gage » 5. Chaine contenant « rla » 6. Lignes terminées par « ans » 7. Chaines contenant les sous-chaines « alpha » ou « exe » 8. Ligne ne commençant pas par un chiffre 9. Ligne commençant par une voyelle ou un chiffre 10. Ligne ne commençant pas par une voyelle 11. Ligne commençant ou se terminant par un chiffre 12. Les lignes sui font moins de 10 caractères. Exercice C : Combiner find, grep, xargs et le pipe 1. Chercher les fichiers cachés (dont le nom commence par un .) dans le répertoire courant, et qui contiennent le mot « term » pour ensuite les supprimer. 2. find ~ -type f -exec grep -il ‘term’ {} ; Que fait cette commande ? réaliser la même chose avec un pipe. 3. Rechercher dans le répertoire courant tous les fichiers normaux (sans les répertoires, fichiers spéciaux), et rechercher dans ces fichiers tous ceux contenant la chaîne toto. 4. Testez la commande : find . -type f | xargs grep matrice, puis la commande find . -type f | grep matrice. Remarquez les résultats. 5. Vous chercherez dans votre répertoire «fic_C» les fichiers d'extension «.c» dans lesquels se trouvent une ligne contenant l'instruction «if» et afficherez les lignes. Pour cela vous utiliserez 2 méthodes, une avec le pipe et l'autre avec l'option «exec». Quelles sont les différences. 6. Rechercher tous les fichiers d'anciennes sauvegardes (qui terminent par '' ~'') qui ont été créés les 5 derniers jours ou depuis au moins 10 jours, et supprimer ceux qui contiennent au moins un ''if''.