Manipuler des fichiers

Objectifs

  • Savoir utiliser la commande grep

  • Savoir utiliser la commande wc

  • Savoir utiliser la commande sort

Méthodegrep

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.

1
$ grep astrona /usr/share/dict/words
2
astronaut
3
astronaut's
4
astronautics
5
astronautics's
6
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

1
$ grep -r astrona /usr/share/dict
2
/usr/share/dict/french:astronaute
3
/usr/share/dict/french:astronautes
4
/usr/share/dict/french:astronautique
5
/usr/share/dict/american-english:astronaut
6
/usr/share/dict/american-english:astronaut's
7
/usr/share/dict/american-english:astronautics
8
/usr/share/dict/american-english:astronautics's
9
/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.

1
$ grep "^anti-" /usr/share/dict/french 
2
anti-américanisme
3
anti-impérialisme
4
anti-impérialiste
5
anti-impérialistes
6
anti-inflammatoire
7
anti-inflammatoires
8
anti-inflationniste
9
anti-inflationnistes
10
anti-scientifique
11
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éthodeLa 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.

1
$ wc lettre.tex 
2
  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.

1
$ wc -l lettre.tex 
2
  53 lettre.tex

MéthodeLa 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é.

1
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.