GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Kombinieren Sie mehrere Unix-Befehle in einer Ausgabe

Ein anderer Weg ist

{ grep ...; bzgrep ...;} >file

&& hat die Schwierigkeit, dass die bzgrep würde nicht ausgeführt werden, wenn grep fehlgeschlagen.

Beachten Sie das obligatorische Leerzeichen nach der öffnenden geschweiften Klammer und das Semikolon nach dem letzten Befehl. Alternativ können Sie die Subshell-Syntax (Klammern statt geschweiften Klammern) verwenden, die nicht so wählerisch ist:

(grep ...; bzgrep ...) >file

bzgrep verwendet automatisch reguläres grep, wenn eine Datei nicht bzip-komprimiert ist. Daher sollte Folgendes ausreichen:

bzgrep [email protected] maillog *bz2 | mail -s "logs yay" [email protected]

oh natürlich auch hier ist meine obligatorische GNU Parallel Lösung:

parallel -m bzgrep [email protected] ::: maillog* *bz2 | mail -s "logs yay" [email protected]

was viel schneller sein könnte, wenn Sie viele Dateien prüfen.


Hier ist eine andere Möglichkeit, dies zu tun (vorausgesetzt, Sie führen bash aus, was wahrscheinlich der Fall ist):

cat <(bzgrep ...) <(grep ...)

Hier speist bash die Ausgabe der bzgrep- und grep-Befehle transparent in cat ein, als ob sie Dateien wären (und sie sind irgendwie unter der Haube, Details in der URL unten).

In Ihrem speziellen Fall würde ich Phils Lösung empfehlen, aber das obige ist ein guter Trick, den Sie in Ihrer Tasche behalten sollten.

Wenn Sie interessiert sind, können Sie hier mehr lesen:http://www.tldp.org/LDP/abs/html/process-sub.html


Linux
  1. Senden von „ps“ über mehrere Server, Ausgabe in eine Textdatei?

  2. Wie kann man mehrere Internetverbindungen zu einer zusammenführen?

  3. Wie kann man eine Reihe von Grep-Anweisungen zu einer Grep-Anweisung kombinieren?

  4. Unix Sed Tutorial:So führen Sie mehrere Sed-Befehle aus

  5. Mehrere PDF-Dateien in ein PDF zusammenführen / konvertieren

So verbinden Sie mehrere Zeilen in einer Datei in Linux zu einer

So führen Sie mehrere Linux-Befehle in einem einzigen Befehl aus

So führen Sie unter Linux mehrere PDF-Dateien zu einem PDF zusammen

So verbinden/verschmelzen Sie mehrere Audiodateien zu einer in Linux

3 Methoden zum Anzeigen der tail -f-Ausgabe mehrerer Protokolldateien in einem Terminal

Wie gzipe ich mehrere Dateien in eine gz-Datei?