Lorsque nous allons travailler avec des astuces «Pipe», «Pipe» prendra le stdout d'une commande et le transmettra au stdin de la commande suivante.
Voyons certaines des façons les plus courantes que vous puissiez incorporer la commande «Pipe» dans votre utilisation quotidienne.
Utilisation de base
Il vaut mieux développer la méthode de travail de «Pipe» avec un exemple en direct, à droite? Commençons. La commande suivante indiquera «Pacman», le gestionnaire de packages par défaut pour Arch et toutes les distros basés sur l'arc, pour imprimer tous les packages installés sur le système.
Pacman -qqe
C'est une très longue liste de packages. Comment, de ramasser seulement quelques composants? Nous pourrions utiliser «grep». Mais comment? Une façon consisterait à vider la sortie dans un fichier temporaire, «grep» la sortie souhaitée et supprimer le fichier. Cette série de tâches, en soi, peut être transformée en script. Mais nous ne scriptons que de très grandes choses. Pour cette tâche, appelons la puissance du «tuyau»!
Pacman -qqe | grep
Génial, n'est-ce pas? Le «|» Le signe est l'appel à la commande «Pipe». Il attrape le stdout de la section gauche et le nourrit dans le stdin de la section droite.
Dans l'exemple susmentionné, la commande «Pipe» a réellement passé la sortie à la fin de la partie «grep». Voici comment ça se passe.
Pacman -qqe> ~ / Desktop / Pacman_package.SMS
Grep Python ~ / Desktop / Pacman_package.SMS
Tuyauterie multiple
Fondamentalement, il n'y a rien de spécial avec l'utilisation avancée de la commande «Pipe». C'est entièrement à vous sur la façon de l'utiliser.
Par exemple, commençons par empiler plusieurs tuyaux.
Pacman -qqe | grep p | grep t | grep pyLa sortie de commande Pacman est filtrée de plus en plus par «grep» à travers une série de tuyauterie.
Parfois, lorsque nous travaillons avec le contenu d'un fichier, cela peut être vraiment, vraiment grand. Découvrir le bon endroit de notre entrée souhaitée peut être difficile. Recherchons toutes les entrées qui incluent les chiffres 1 et 2.
démo de chat.txt | grep -n 1 | grep -n 2
Manipulation de la liste des fichiers et répertoires
Que faire lorsque vous traitez avec un répertoire avec des tonnes de fichiers? C'est assez ennuyeux de faire défiler toute la liste. Bien sûr, pourquoi ne pas le rendre plus supportable avec un tuyau? Dans cet exemple, consultons la liste de tous les fichiers du dossier «/ usr / bin».
ls -l| plus
Ici, «LS» imprime tous les fichiers et leurs informations. Ensuite, «Pipe» le passe à «plus» pour travailler avec cela. Si vous ne le saviez pas, «plus» est un outil qui transforme les textes en une seule vue à la fois. Cependant, c'est un ancien outil et selon la documentation officielle, «moins» est plus recommandé.
ls -l / usr / bin | moins
Tri de sortie
Il y a un outil intégré «tri» qui prendra la saisie du texte et les triera. Cet outil est un vrai joyau si vous travaillez avec quelque chose de vraiment désordonné. Par exemple, j'ai obtenu ce fichier plein de chaînes aléatoires.
démo de chat.SMS
Pipez-le simplement pour «trier».
démo de chat.txt | trier
C'est mieux!
Imprimer les matchs d'un modèle particulier
ls -l | trouver ./ -Type f -Name "*.txt "-exec grep 00110011 \;
C'est une commande assez tordue, à droite? Au début, «LS» publie la liste de tous les fichiers du répertoire. L'outil «Find» prend la sortie, recherche «.TXT "Files et convocation" Grep "pour rechercher" 00110011 ". Cette commande vérifiera chaque fichier texte dans le répertoire avec l'extension TXT et recherchera les matchs.
Imprimer le contenu d'une plage particulière
Lorsque vous travaillez avec un gros fichier, il est courant d'avoir la nécessité de vérifier le contenu d'une certaine gamme. Nous pouvons faire exactement cela avec un combo intelligent de «chat», de «tête», de «queue» et bien sûr de «pipe». L'outil «tête» sortira la première partie d'un contenu et de la «queue» sortit la dernière partie.
chat| tête -6
chat| queue -6
Valeurs uniques
Lorsque vous travaillez avec des sorties en double, cela peut être assez ennuyeux. Parfois, les contributions en double peuvent causer de graves problèmes. Dans cet exemple, jetons «Uniq» sur un flux de texte et enregistrons-le dans un fichier séparé.
Par exemple, voici un fichier texte contenant une grande liste de nombres qui font 2 chiffres longs. Il y a certainement des contenus en double ici, à droite?
Duplicate de chat.txt | trier
Maintenant, effectuons le processus de filtrage.
Duplicate de chat.txt | Trier | Uniq> unique.SMS
Découvrez la sortie.
chauve-souris unique.SMS
Regarde mieux!
Tuyaux d'erreur
Ceci est une méthode de tuyauterie intéressante. Cette méthode est utilisée pour rediriger le stderr vers Stdout et procéder avec la tuyauterie. Ceci est indiqué par «| &» Symbole (sans les citations). Par exemple, créons une erreur et envoyons la sortie à un autre outil. Dans cet exemple, je viens de taper une commande aléatoire et de passer l'erreur à «grep».
adsfds | & grep n
Dernières pensées
Alors que «Pipe» lui-même est de nature assez simpliste, la façon dont il fonctionne offre une façon très polyvalente d'utiliser la méthode de manière infinie. Si vous êtes dans les scripts bash, alors c'est beaucoup plus utile. Parfois, vous pouvez simplement faire des choses folles! En savoir plus sur les scripts bash.