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

Pipe zu mehreren Dateien in der Shell?

Ich habe eine Anwendung, die eine große Datenmenge produziert, die ich nicht auf der Festplatte speichern möchte. Die Anwendung gibt hauptsächlich Daten aus, die ich nicht verwenden möchte, sondern eine Reihe nützlicher Informationen, die in separate Dateien aufgeteilt werden müssen. Beispielsweise bei folgender Ausgabe:

JUNK
JUNK
JUNK
JUNK
A 1
JUNK
B 5
C 1
JUNK

Ich könnte die Anwendung dreimal so ausführen:

./app | grep A > A.out
./app | grep B > B.out
./app | grep C > C.out

Das würde mir bringen, was ich will, aber es würde zu lange dauern. Ich möchte auch nicht alle Ausgaben in einer einzigen Datei ausgeben und diese analysieren.

Gibt es eine Möglichkeit, die drei oben gezeigten Operationen so zu kombinieren, dass ich die Anwendung nur einmal ausführen muss und trotzdem drei separate Ausgabedateien erhalte?

Akzeptierte Antwort:

Wenn Sie T-Shirt haben

./app | tee >(grep A > A.out) >(grep B > B.out) >(grep C > C.out) > /dev/null

(von hier)

(über Prozesssubstitution)


Linux
  1. Linux-Grundlagen:So laden Sie Dateien auf der Shell mit Wget herunter

  2. PHP-FFMpeg:Mehrere Eingabedateien zulassen (Audio zum Video hinzufügen)

  3. Grep für mehrere Zeichenfolgen in Dateien und dann die Dateien in der Reihenfolge ihrer Größe auflisten?

  4. Dd:Mehrere Eingabedateien?

  5. Wie finde ich mehrere Zeichenfolgen in Dateien?

Was ist die Shell unter Linux?

Wie die BASH-Shell ihre Konfigurationsdateien unter Linux lädt

Wie listet man bestimmte Dateitypen in rekursiven Verzeichnissen in der Shell auf?

Suchen nach einer Zeichenfolge in mehreren Dateien unter Linux

Wie benenne ich Dateien mit Leerzeichen mit der Linux-Shell um?

Tail mehrere entfernte Dateien