Manipulation de fichiers et de données

Transcription

Manipulation de fichiers et de données
Outils Unix - Exercices
Liste des librairies statiques
Comment lister toutes les librairies statiques (c.à-d. les noms de fichiers commençant par
« lib » et se terminant par « .a ») sous le
répertoire courant et ses sous-répertoires ?
Manipulation de fichiers
et de données
Renaud Marlet
LaBRI / INRIA
http://www.labri.fr/~marlet
1
© 2005 R. Marlet
Liste des librairies statiques
Liste des librairies statiques
Comment lister toutes les librairies statiques (c.à-d. les noms de fichiers commençant par
« lib » et se terminant par « .a ») sous le
répertoire courant et ses sous-répertoires ?
© 2005 R. Marlet
2
© 2005 R. Marlet
Comment lister toutes les librairies statiques (c.à-d. les noms de fichiers commençant par
« lib » et se terminant par « .a ») apparaissant
dans le fichier « Makefile » ?
find . -name 'lib*.a'
3
© 2005 R. Marlet
4
Liste des librairies statiques
Liste des librairies statiques
Comment lister toutes les librairies statiques (c.à-d. les noms de fichiers commençant par
« lib » et se terminant par « .a ») apparaissant
dans le fichier « Makefile » ?
Comment lister toutes les librairies statiques (c.à-d. les noms de fichiers commençant par
« lib » et se terminant par « .a ») apparaissant
dans le fichier « Makefile » ?
grep -w 'lib.*\.a' Makefile
5
© 2005 R. Marlet
grep -w 'lib[A-Za-z0-9_]*\.a' Makefile
6
© 2005 R. Marlet
Nombre de fichiers C
(répertoire courant)
Nombre de fichiers C
(répertoire courant)
Comment compter le nombre de fichiers en
langage C sous le répertoire courant (mais pas
les sous-répertoires) ?
Comment compter le nombre de fichiers en
langage C sous le répertoire courant (mais pas
les sous-répertoires) ?
© 2005 R. Marlet
7
© 2005 R. Marlet
ls *.[ch] | wc -l
8
Nombre de fichiers C
(répertoire et sous-répertoires)
Nombre de fichiers C
(répertoire et sous-répertoires)
Comment compter le nombre de fichiers en
langage C sous le répertoire courant et ses
sous-répertoires ?
Comment compter le nombre de fichiers en
langage C sous le répertoire courant et ses
sous-répertoires ?
9
© 2005 R. Marlet
10
© 2005 R. Marlet
Nombre de fichiers C
(total sur PC)
Nombre de fichiers C
(total sur PC)
Comment compter le nombre de fichiers en
langage C sur le PC ( réels ou indexés) ?
Comment compter le nombre de fichiers en
langage C sur le PC ( réels ou indexés) ?
Comment supprimer les messages erreurs (accès
interdit, etc.) ?
find / -name '*.[ch]' | wc -l
locate '*.[ch]' | wc -l
Comment supprimer les messages erreurs (accès
interdit, etc.) ?
© 2005 R. Marlet
find . -name '*.[ch]' | wc -l
11
© 2005 R. Marlet
find / -name '*.[ch]' 2>/dev/null | wc -l
12
Taille de code C
(répertoire courant, par fichier)
Taille de code C
(répertoire courant, par fichier)
Comment compter le nombre de lignes de tous
les fichiers en langage C sous le répertoire
courant (mais pas les sous-répertoires) ?
Comment compter le nombre de lignes de tous
les fichiers en langage C sous le répertoire
courant (mais pas les sous-répertoires) ?
13
© 2005 R. Marlet
wc -l *.[ch]
14
© 2005 R. Marlet
Taille de code C
(total répertoire courant)
Taille de code C
(total répertoire courant)
Comment compter le nombre total de lignes de
tous les fichiers en langage C sous le répertoire
courant (mais pas les sous-répertoires) ?
Comment compter le nombre total de lignes de
tous les fichiers en langage C sous le répertoire
courant (mais pas les sous-répertoires) ?
© 2005 R. Marlet
15
© 2005 R. Marlet
wc -l *.[ch] | grep total
cat *.[ch] | wc -l
16
Taille de code C
(avec sous-répertoires, par fichier)
Taille de code C
(avec sous-répertoires, par fichier)
Comment compter le nombre de lignes de tous
les fichiers en langage C sous le répertoire
courant et ses sous-répertoires ?
Comment compter le nombre de lignes de tous
les fichiers en langage C sous le répertoire
courant et ses sous-répertoires ?
17
© 2005 R. Marlet
wc -l `find . -name '*.[ch]'`
18
© 2005 R. Marlet
Taille de code C
(total, avec sous-répertoires)
Taille de code C
(total, avec sous-répertoires)
Comment compter le nombre total de lignes de
tous les fichiers en langage C sous le répertoire
courant et ses sous-répertoires ?
Comment compter le nombre total de lignes de
tous les fichiers en langage C sous le répertoire
courant et ses sous-répertoires ?
© 2005 R. Marlet
19
© 2005 R. Marlet
wc -l `find . -name '*.[ch]'` | grep total
cat `find . -name '*.[ch]'` | wc -l
20
Taille de code C
(total sur PC)
Taille de code C
(total sur PC)
Comment compter le nombre total de lignes de
tous les fichiers en langage C sur le PC ?
Comment compter le nombre total de lignes de
tous les fichiers en langage C sur le PC ?
21
© 2005 R. Marlet
Nombre de programmes C
(total sur PC)
Comment compter le nombre total de lignes de
tous les fichiers en langage C sur le PC ?
© 2005 R. Marlet
22
© 2005 R. Marlet
Taille de code C
(total sur PC)
cat `locate '*.[ch]'` | wc -l
Comment compter (approximativement) le nombre
programmes sources C sur le PC ?
locate '*.[ch]' | xargs cat | wc -l
23
© 2005 R. Marlet
24
Nombre de programmes C
(total sur PC)
Note : Environnements de
programmation intégrés
Comment compter (approximativement) le nombre
programmes sources C sur le PC ?
grep -w 'main *(' `locate '*.[ch]'` | wc -l
locate '*.[ch]' | xargs grep -w 'main *(' | wc -l
25
© 2005 R. Marlet
Environnement de programmation :
Visual C++, Eclipse, Kdevelop, ...
Fonctions intégrées :
édition, compilation, recherche, modifications
statistiques, ...
Recherche de
tous les fichiers récents
Recherche de
tous les fichiers récents
Comment lister tous les fichiers du répertoire
courant ou de ses sous-répertoires qui ont été
créés ou modifiés depuis un jour au plus ?
Comment lister tous les fichiers du répertoire
courant ou de ses sous-répertoires qui ont été
créés ou modifiés depuis un jour au plus ?
© 2005 R. Marlet
26
© 2005 R. Marlet
27
© 2005 R. Marlet
find . -newermt '1 day ago'
28
Recherche de
tous les fichiers plus vieux que ...
Recherche de
tous les fichiers plus vieux que ...
Comment lister tous les fichiers du répertoire
courant ou de ses sous-répertoires qui ont été
créés avant le 25 décembre 2004 ?
Comment lister tous les fichiers du répertoire
courant ou de ses sous-répertoires qui ont été
créés avant le 25 décembre 2004 ?
find . \! -newerct '12/25/2004'
Attention! ()
Notation américaine : « 12/25/05 » = 25 déc 2005
29
© 2005 R. Marlet
30
© 2005 R. Marlet
Retirer les lignes vides
Retirer les lignes vides
Comment retirer toutes les lignes vides (c.-à-d. ne
contenant, éventuellement, que des espaces)
d'un fichier ?
Comment retirer toutes les lignes vides (c.-à-d. ne
contenant, éventuellement, que des espaces)
d'un fichier ?
d'un pipe ?
© 2005 R. Marlet
grep -v '^ *$' FICHIER
... | grep -v '^ *$'r ?
d'un pipe ?
31
© 2005 R. Marlet
32

Documents pareils