Wenn wir mit „Pipe“ -Trips arbeiten, wird „Pipe“ den STDOut eines Befehls nimmt und es an den Stdin des nächsten Befehls weitergibt.
Schauen wir uns einige der häufigsten Möglichkeiten an, wie Sie den Befehl „Rohr“ in Ihre tägliche Verwendung integrieren können.
Grundnutzung
Es ist besser, mit einem Live? Lass uns anfangen. Der folgende Befehl zeigt „Pacman“, den Standardpaket-Manager für Arch und alle Arch-basierten Distribos, alle installierten Pakete auf dem System auszudrucken.
Pacman -qqe
Es ist eine wirklich lange Liste von Paketen. Wie, nur wenige Komponenten aufzunehmen? Wir könnten "Grep" verwenden. Aber wie? Eine Möglichkeit würde darin bestehen, die Ausgabe in eine temporäre Datei zu werfen, die gewünschte Ausgabe zu „grep“ und die Datei löschen. Diese Reihe von Aufgaben kann selbst in ein Skript verwandelt werden. Aber wir skribieren nur für sehr große Dinge. Für diese Aufgabe rufen wir die Kraft von „Pfeife“ an,!
Pacman -qqe | Grep
Genial, nicht wahr?? Das "|" Das Zeichen ist der Anruf zum Befehl "Pipe". Es greift den Stdout aus dem linken Abschnitt und füttert ihn in das Stdin des rechten Abschnitts.
Im oben genannten Beispiel hat der Befehl „Pipe“ die Ausgabe am Ende des "Grep" -Teils tatsächlich überholt. So spielt es sich aus.
pacman -qqe> ~/desktop/pacman_package.txt
grep python ~/desktop/pacman_package.txt
Mehrere Rohrleitungen
Grundsätzlich gibt es nichts Besonderes mit der fortgeschrittenen Verwendung des Befehls „Pipe“. Es liegt ganz bei Ihnen, wie man es benutzt.
Beginnen wir zum Beispiel mit mehreren Rohrleitungen.
Pacman -qqe | grep p | grep t | Grep PyDie Pacman -Befehlsausgabe wird durch eine Reihe von Rohrleitungen immer weiter und weiter durch „Grep“ gefiltert.
Manchmal, wenn wir mit dem Inhalt einer Datei arbeiten, kann es wirklich sehr, sehr groß sein. Es kann schwierig sein, den richtigen Ort unseres gewünschten Eintrags zu finden. Suchen wir nach allen Einträgen, die Ziffern 1 und 2 enthalten.
Katzendemo.txt | Grep -n 1 | Grep -n 2
Manipulieren Sie die Liste von Dateien und Verzeichnissen
Was tun, wenn Sie mit einem Verzeichnis mit Tonnen von Dateien zu tun haben? Es ist ziemlich ärgerlich, durch die gesamte Liste zu scrollen. Sicher, warum nicht mit Rohr erträglicher machen? Schauen wir uns in diesem Beispiel die Liste aller Dateien im Ordner "/usr/Bin" an.
ls -l| mehr
Hier druckt „LS“ alle Dateien und ihre Informationen. Dann übergeht „Rohr“ es an „mehr“, um damit zu arbeiten. Wenn Sie nicht wussten, ist „mehr“ ein Tool, das Texte gleichzeitig in eine Bildschirmansicht verwandelt. Es handelt sich jedoch um ein altes Werkzeug, und laut offizieller Dokumentation wird „weniger“ empfohlener.
ls -l /usr /bin | weniger
Sortierleistung
Es gibt ein integriertes Werkzeug „Sortier“. Dieses Tool ist ein echtes Juwel, wenn Sie mit etwas wirklich Unordentlichem arbeiten. Zum Beispiel habe ich diese Datei voller zufälliger Zeichenfolgen erhalten.
Katzendemo.txt
Pfeifen Sie es einfach, um zu "sortieren".
Katzendemo.txt | Sortieren
Das ist besser!
Druckübereinstimmungen eines bestimmten Musters
ls -l | finden ./ -typ f -name "**.txt "-exec grep 00110011 \;
Dies ist ein ziemlich verdrehter Befehl, richtig? Zuerst gibt „LS“ die Liste aller Dateien im Verzeichnis aus. Das "Find" -Tool nimmt die Ausgabe und sucht nach “.TXT ”-Dateien und Beschwören„ Grep “, um nach„ 00110011 “zu suchen. In diesem Befehl werden jede einzelne Textdatei im Verzeichnis mit der TXT -Erweiterung überprüft und nach den Übereinstimmungen suchen.
Dateiinhalt eines bestimmten Bereichs drucken
Wenn Sie mit einer großen Datei arbeiten, ist es üblich, den Inhalt eines bestimmten Bereichs zu überprüfen. Wir können genau das mit einer cleveren Kombination aus "Katze", "Kopf", "Schwanz" und natürlich "Pipe" machen. Das "Kopf" -Tool gibt den ersten Teil eines Inhalts aus und "Schwanz" gibt den letzten Teil aus.
Katze| Kopf -6
Katze| Schwanz -6
Eindeutige Werte
Bei der Arbeit mit doppelten Ausgängen kann es ziemlich ärgerlich sein. Manchmal kann doppelte Eingaben schwerwiegende Probleme verursachen. Lassen Sie uns in diesem Beispiel "Uniq" in einen Textstrom werfen und in eine separate Datei speichern.
Hier ist beispielsweise eine Textdatei mit einer großen Liste von Zahlen, die 2 Ziffern lang sind. Hier gibt es definitiv doppelte Inhalte, richtig?
Katzen duplizieren.txt | Sortieren
Führen Sie nun den Filterprozess durch.
Katzen duplizieren.txt | sortieren | Uniq> einzigartig.txt
Schauen Sie sich die Ausgabe an.
Fledermaus einzigartig.txt
Sieht besser aus!
Fehlerleitungen
Dies ist eine interessante Rohrmethode. Diese Methode wird verwendet, um das Stderr auf Stdout umzuleiten und mit der Rohrleitungen fortzufahren. Dies wird durch „| &“ -Symbol bezeichnet (ohne die Zitate). Lassen Sie uns beispielsweise einen Fehler erstellen und die Ausgabe an ein anderes Tool senden. In diesem Beispiel habe ich gerade einen zufälligen Befehl eingegeben und den Fehler an "Grep" übergeben.
adsfds | & grep n
Abschließende Gedanken
Während „Pipe“ selbst ziemlich simpel ist, bietet die Art und Weise, wie es arbeitet. Wenn Sie sich mit Bash -Skripting interessieren, ist es viel nützlicher. Manchmal können Sie einfach verrückte Dinge sofort tun! Erfahren Sie mehr über Bash Scripting.