Manipuler des fichiers
Objectifs
Savoir utiliser la commande
grep
Savoir utiliser la commande
wc
Savoir utiliser la commande
sort
Méthode : grep
La commande grep
est l'une des plus utilisées sous Linux. Elle permet de rechercher un motif au sein de un ou plusieurs fichiers.
$ grep astrona /usr/share/dict/words
astronaut
astronaut's
astronautics
astronautics's
astronauts
La commande recherche dans le fichier /usr/share/dict/words
toutes les lignes qui contiennent la suite de lettre "astrona".
Exemple :
grep
peut aussi être utilisée sur un dossier entier, de manière récursive
$ grep -r astrona /usr/share/dict
/usr/share/dict/french:astronaute
/usr/share/dict/french:astronautes
/usr/share/dict/french:astronautique
/usr/share/dict/american-english:astronaut
/usr/share/dict/american-english:astronaut's
/usr/share/dict/american-english:astronautics
/usr/share/dict/american-english:astronautics's
/usr/share/dict/american-english:astronauts
On constate que, pour chaque occurrence qui est trouvée, il est précisé le nom du fichier dans lequel elle se trouve.
Exemple :
grep
est une commande puissante, qui peut aussi s'appuyer sur des expressions régulières.
$ grep "^anti-" /usr/share/dict/french
anti-américanisme
anti-impérialisme
anti-impérialiste
anti-impérialistes
anti-inflammatoire
anti-inflammatoires
anti-inflationniste
anti-inflationnistes
anti-scientifique
anti-sous-marin
Ici on ne capture que les occurrences qui commencent par "anti", c'est ce que signifie le caractère ^
. C'est ce que l'on appelle des expressions régulières. Cela mériterais un cours à part entière, pour approfondir, il existe de bonnes ressources en ligne.
Méthode : La commande wc
La commande wc
(pour Word Count) permet de compter, dans un fichier, le nombre de lignes, de mots et la taille du fichier.
$ wc lettre.tex
53 171 1510 lettre.tex
Dans l'ordre on récupère le nombre de lignes (53), le nombre de mots (171) et la taille (1510 octets) du fichier. Il est possible de n'obtenir qu'une seule de ces valeurs à l'aide d'options, par exemple -l
pour le nombre de lignes.
$ wc -l lettre.tex
53 lettre.tex
Méthode : La commande sort
Une autre commande très utile est sort
. Comme son nom l'indique elle permet de retourner le contenu d'un fichier, mais trié.
sort /usr/share/dict/words
Par défaut elle trie par ordre alphabétique, mais il est possible de trier selon un ordre croissant numérique avec l'option -n
.
À retenir
On peut facilement effectuer des recherches avec grep
, du tri avec sort
et compter les lignes/mots d'un fichier avec wc
.