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.txthilft - 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.txtwobei 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