#6 Chercher et filtrer
grep, find, wc, pipes
grep -- Chercher du texte
La commande grep recherche un motif (un mot, une expression) dans un ou plusieurs fichiers. Elle affiche chaque ligne qui contient le motif recherché.
$ grep "notes" fichier.txt
Ce fichier contient des notes importantes.Avec l'option -r (récursif), grepcherche dans tous les fichiers du dossier courant et ses sous-dossiers :
$ grep -r "TODO" .
./projets/app.js:// TODO: ajouter validation
./notes.txt:TODO: finir le rapportfind -- Trouver des fichiers
La commande find cherche des fichiers et dossiers selon différents critères : nom, type, taille, date de modification...
$ find . -name "*.txt"
./notes.txt
./Documents/rapport.txtL'option -type d limite la recherche aux dossiers uniquement :
$ find . -type d
.
./Documents
./projetswc -- Compter
wc (word count) compte les lignes, les mots et les caractères d'un fichier :
$ wc notes.txt
3 12 65 notes.txt
# 3 lignes, 12 mots, 65 caractèresL'option -l affiche uniquement le nombre de lignes :
$ wc -l notes.txt
3 notes.txtLes pipes | -- Enchaîner les commandes
Le caractère | (pipe) envoie la sortie d'une commande comme entrée de la suivante. C'est l'un des concepts les plus puissants du terminal : combiner des outils simples pour créer des traitements complexes.
$ ls | grep txt
notes.txtIci, ls liste les fichiers, et grep txtfiltre pour ne garder que ceux contenant "txt".
$ cat notes.txt | wc -l
3La sortie de cat est envoyée à wc -l qui compte le nombre de lignes.
Récapitulatif
grep "motif" fichier # Chercher du texte dans un fichier
grep -r "motif" . # Chercher récursivement
find . -name "*.txt" # Trouver des fichiers par nom
find . -type d # Trouver les dossiers
wc fichier # Compter lignes, mots, caractères
wc -l fichier # Compter les lignes
commande1 | commande2 # Pipe : enchaîner les commandesÀ vous de jouer
Essayez grep, find, wc et les pipes dans le terminal ci-dessous. Combinez les commandes pour explorer les fichiers disponibles.