[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: filedescriptor in bash forken



Am 27.06.2012 12:50, schrieb Sascha Reißner:
Am Mittwoch, den 27.06.2012, 12:14 +0200 schrieb Simon Reinhardt:
Hallo zusammen,

ich habe folgendes Problem:
ich möchte in der bash den stdout von einem command foo
1. auf dem Terminal ausgeben und
2. Mit sed bearbeiten und die Ausgabe von sed in eine Datei schreiben.
Habe im bash reference-manual leider nichts dazu gefunden.

In einer Zeile willst du das nicht?

echo "foo bar ende" | sed s/bar/foo/g > sed.txt

Er will es ja schreiben und gleichzeitig auf dem Bildschirm sehen.

Die Frage ist, ob ihm

echo "foo bar ende" | sed s/bar/foo/g | tee sed.txt

hilft - das zeigt halt bereits das geänderte Ergebnis an und nicht den Ursprungstext.

Wenn es der Ursprungstext sein soll, könnte noch etwas in dieser Art funktionieren:

echo "foo bar ende" | tee - ___ | sed s/bar/foo/g > sed.txt

wobei an der Stelle ___ dann Magie stehen muss, die die Standardausgabe von tee auf STDERR umleitet, damit sie auf dem Bildschirm erscheint, während reguläres STDOUT an die Pipe weitergeht.

man tee sagt ja: "If a FILE is -, copy again to standard output."
Somit könnte der Trick mit einmal auf STDOUT, einmal auf STDERR funktionieren.

-Stefan


Reply to: