Manipuler des fichiers
Objectifs
Savoir utiliser la commande
grepSavoir utiliser la commande
wcSavoir 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/wordsastronaut
astronaut'sastronauticsastronautics'sastronauts
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.texMé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/wordsPar 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.