Pipe avec Grep
Fait partie de la section Les fondamentaux du Journey Terminal de Coddy — leçon 46 sur 82.
La commande grep devient particulièrement puissante lorsqu'elle est combinée avec des pipes. Au lieu de rechercher dans un fichier, vous pouvez filtrer la sortie de n'importe quelle commande pour trouver exactement ce dont vous avez besoin.
Imaginez que vous souhaitiez trouver un fichier spécifique dans le listing d'un répertoire :
ls -l | grep "report"Cela liste tous les fichiers en détail, puis filtre pour ne montrer que les lignes contenant «report». Vous obtenez des résultats ciblés sans devoir examiner manuellement tout le contenu.
Le tuyautage vers grep fonctionne avec toute commande qui produit une sortie texte. Pour trouver les processus en cours liés à un programme spécifique :
ps aux | grep "python"Vous pouvez également chaîner grep avec d'autres commandes que vous avez apprises. Pour compter le nombre de lignes contenant un mot spécifique :
cat logfile.txt | grep "error" | wc -lCela lit le fichier, filtre les lignes contenant «error», puis les compte. Les options de grep que vous avez apprises plus tôt fonctionnent de la même manière dans les pipes — utilisez -i pour une correspondance insensible à la casse ou -v pour exclure les correspondances.
Défi
FacileLe fichier access.log contient les enregistrements d'accès du serveur web. Utilisez un pipe pour filtrer et compter combien de requêtes ont abouti à un code d'erreur de statut 500.
Exécutez une seule commande qui :
- Utilise
catpour lireaccess.log - Pipe vers
greppour filtrer les lignes contenant500 - Pipe vers
wc -lpour compter les lignes correspondantes
Indice : Chaînez les trois commandes ensemble en utilisant le symbole
|. La commandegrepfiltre la sortie, etwc -lcompte les lignes restantes.
Aide-mémoire
La commande grep peut filtrer la sortie d'autres commandes en utilisant des pipes (|).
Filtrer les listes de répertoires :
ls -l | grep "report"Filtrer les processus en cours :
ps aux | grep "python"Chaîner plusieurs commandes pour filtrer et compter :
cat logfile.txt | grep "error" | wc -lTous les drapeaux de grep fonctionnent dans les pipes, tels que -i pour une correspondance insensible à la casse et -v pour exclure les correspondances.
Essayez vous-même
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Les fondamentaux
4Répertoires
Créer Un RépertoireCopier Un RépertoireDéplacer Et Renommer Un RépertoireSupprimer Un RépertoireRécapitulatif - Opérations Sur Les Répertoires7Contenu de fichier
Head et TailComptage de motsCommande SortCommande UniqBases de GrepGrep avec optionsRécap - Détective de texte10Projet Analyseur de Journaux
Aperçu du ProjetAffichage du Fichier Journal2Navigation
Afficher le répertoire de travailLister les fichiersChanger de répertoireChemins absolus vs relatifsRépertoire personnel et racineRécap - Trouver son chemin5Projet Organiser les Photos
Aperçu du ProjetCréation de la Structure8Redirection
Sortie standardÉcraser vers un fichierAjouter à un fichierEntrée standardErreur standardRécapitulatif - Constructeur de logs11Permissions
Comprendre les permissionsLire les permissionsChmod avec des nombresChmod avec des symbolesPropriété des fichiersRécapitulatif - Verrouillez tout14Projet de Script de Sauvegarde
Aperçu du ProjetObtenir le Chemin Source3Fichiers
Créer Un FichierLire Un FichierCopier Un FichierDéplacer Et Renommer Un FichierSupprimer Un FichierRécapitulatif - Opérations Sur Les Fichiers6Caractères jokers et motifs
Le joker étoileLe joker point d'interrogationJokers entre crochetsCombiner les jokersRécapitulatif - Opérations sélectives9Les pipes
Qu'est-ce qu'une pipe ?Chaîner deux commandesChaîner plusieurs commandesPipe avec GrepRécapitulatif - Pipeline de données