Bash-skript -> Ausgabe 2-teilen

Hallo,
wie teile ich eine Ausgabe, um sie auf der Standardausgabe anzuzeigen UND weiter zu verarbeiten?
Also soetwas wie „tee“ das aber nicht in eine Datei schreibt sondern per Pipe an den nächsten Befehl gibt.

Bsp.
netstat -utanp | grep VERBUNDEN | tee /home/irgendwer/irgendwo/datei.txt

soll werden:

netstat -utanp | grep VERBUNDEN | ??Ergebnis ausgeben und weiterleiten?? | wc -l

Grüsse
K.

Hallo,

wie teile ich eine Ausgabe, um sie auf der Standardausgabe
anzuzeigen UND weiter zu verarbeiten?
Also soetwas wie „tee“ das aber nicht in eine Datei schreibt
sondern per Pipe an den nächsten Befehl gibt.

Bsp.
netstat -utanp | grep VERBUNDEN | tee
/home/irgendwer/irgendwo/datei.txt

soll werden:

Wenn es nicht die Standardausgabe sein muss:

netstat -tupan | tee /dev/stderr | grep $bla

Grüße,
Moritz

Hilft ein bißchen weiter…
Danke :o)
K.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hilft ein bißchen weiter…

wenn das nicht hilft, kannst du dann noch mal genauer beschreiben, was wohin soll?
nach deiner beschreibung hätte ich das nämlich auch als erfüllung deines wunsches angenommen ;-?

mfg TLF

Hallo Klaus.

wie teile ich eine Ausgabe, um sie auf der Standardausgabe
anzuzeigen UND weiter zu verarbeiten?
Also soetwas wie „tee“ das aber nicht in eine Datei schreibt
sondern per Pipe an den nächsten Befehl gibt.

Dafür gibt es die Prozesssubstitution >( empfangsprozess ).

Diese kann überall dort stehen, wo eigentlich eine Datei erwartet
wird, nur dass der Empfänger eben der beliebig komplexe „empfangsprozess“ ist.

Bsp.
netstat -utanp | grep VERBUNDEN | tee
/home/irgendwer/irgendwo/datei.txt

soll werden:

netstat -utanp | grep VERBUNDEN | ??Ergebnis ausgeben und weiterleiten?? | wc -l

Da tee seine Eingabe auf N Dateien und die Standardausgabe vervielfacht, mogeln wir ihm also statt der Datei einen Prozess unter:

$ netstat -utanp | grep VERBUNDEN | tee \>(sort \> sortiert.txt) unsortiert.txt
# Standardausgabe: 
tcp 0 0 127.0.0.1:28558 127.0.0.1:22 VERBUNDEN 4481/ssh
tcp 0 0 127.0.0.1:22 127.0.0.1:28558 VERBUNDEN 4482/4

# plus 2 Ergebnisdateien:
$ ls -l \*sortiert\*
-rw-r--r-- 1 root root 202 2007-11-04 11:58 sortiert.txt
-rw-r--r-- 1 root root 202 2007-11-04 11:58 unsortiert.txt

# hier mit 3 Ergebnisdateien:
$ netstat -utanp | grep VERBUNDEN | tee \>(sort \> sortiert.txt) \>(wc -l \> anzahl.txt) unsortiert.txt
tcp 0 0 127.0.0.1:28558 127.0.0.1:22 VERBUNDEN 4481/ssh
tcp 0 0 127.0.0.1:22 127.0.0.1:28558 VERBUNDEN 4482/4

Gruß,
-Andreas.