CMD Master
Retour au blog
Arnošt Havelka

Enchaîner grep, sort et wc en une seule commande

Comptez les lignes correspondantes et filtrez une liste triée en combinant cat, grep, sort et wc.

Démarrer la leçon interactive
Enchaîner grep, sort et wc en une seule commande

Une fois que grep, sort et wc ont chacun un sens, le vrai travail consiste à les composer. Une seule ligne peut extraire les erreurs d'un journal et les compter, ou trier une liste d'utilisateurs et ne garder que les noms correspondants. Il n'y a pas de commande « ninja » spéciale — seulement des tubes.

Compter les lignes correspondantes

Lisez le fichier, gardez le motif, comptez ce qui reste :

Essayer la commande

Filtrez un fichier, puis comptez ou triez !

Composer la commande
cat
Terminal
~$cat data.log | grep 'ERROR' | wc -l
2

Combien de lignes ERROR ?

Terminal
~$cat data.log | grep 'ERROR' | wc -l

grep sans wc affiche encore les lignes correspondantes. Ajoutez wc -l quand vous n'avez besoin que du nombre.

Trier d'abord, puis filtrer

Parfois l'ordre compte avant la recherche. Triez le fichier, puis gardez la ligne qui vous intéresse :

printf '%s\n' 'user: guest' 'user: root' 'user: admin' > logs.txt
cat logs.txt | sort | grep 'root'
Terminal
~$cat logs.txt | sort | grep 'root'

Lisez de gauche à droite : produire des lignes, les transformer, puis garder ou compter. Si un tube a l'air faux, lancez chaque morceau seul jusqu'à ce que la sortie corresponde à ce que la commande suivante attend.


Vérification des connaissances

1 / 3

Que renvoie cat data.log | grep 'ERROR' | wc -l ?

Références

Ces liens de documentation fournissent des informations fiables sur les commandes utilisées dans cet article.

À suivre

Comment changer le propriétaire d’un fichier avec chown dans Bash

Utilisez chown pour changer le propriétaire et le groupe d’un fichier ou répertoire, vérifier le résultat et éviter les récursions risquées.