Lesen derselben Standardeingabe mit zwei Befehlen in Bash

Lesen derselben Standardeingabe mit zwei Befehlen in Bash

Ich möchte die Ausgabe an zwei separate Befehle <2,3> in Bash weiterleiten. Wie mache ich das am besten? Im Moment habe ich folgendes Skript:

command source > output
command2 output &
command3 output &

Die Ausgabedatei ist ca. 100 GB groß und eine nicht optimale Methode wäre, die Befehle 2 und 3 separat weiterzuleiten. Ich denke, es geht noch effizienter.

Antwort1

In Bash:command source | tee >(command2) >(command3)

AusDasFrage von Stackoverflow. Ich habe das nicht mit riesigen Ausgaben probiert.

Antwort2

Andere Antworten stellen das Konzept vor. Hier ist eine tatsächliche Demonstration:

$ echo "Leeroy Jenkins" | tee >(md5sum > out1) >(sha1sum > out2) > out3

$ cat out1
11e001d91e4badcff8fe22aea05a7458  -

$ echo "Leeroy Jenkins" | md5sum
11e001d91e4badcff8fe22aea05a7458  -

$ cat out2
5ed25619ce04b421fab94f57438d6502c66851c1  -

$ echo "Leeroy Jenkins" | sha1sum
5ed25619ce04b421fab94f57438d6502c66851c1  -

$ cat out3
Leeroy Jenkins

Natürlich können Sie > /dev/nullstatt out3.

verwandte Informationen