web-dev-qa-db-ja.com

コマンドからの出力で2つのことを行う

LaTeXドキュメントの単語数を出力するプログラムtexcountがあります。これの出力をsedにパイプして、改行TeX改行を作成し、これをファイルに書き込んで、最終的なドキュメントに含めることもできます。しかし、私がするときtexcount foo.tex | sed s/$/'\\\\'/ > wc.textexcountのコマンドライン出力は抑制されます。

ターミナルに表示される最初のコマンドの出力を取得するにはどうすればよいですかおよび sedにパイプされますか?

9
Seamus

2番目のコマンドには無名パイプを使用できます。

texcount foo.tex | tee >(sed s/$/'\\\\'/ > wc.tex)
9
wag

パイプを分割できる「tee」コマンドが必要です。

texcount foo.tex | tee >output.txt | sed s/$/'\\\\'/ > wc.tex ; cat output.txt

これにより、追加のoutput.txtファイルが残ります。詳細については、こちらをお読みください: http://www.unixtutorial.org/2007/12/tee-replicate-standard-output/ 「mantee」を実行することもできます。

7
Danny Staple

あなたはかなり慣用的なものを使うことができます

texcount foo.tex | tee /dev/tty | sed s/$/'\\\\'/ > wc.tex

/dev/ttyは、現在のプロセスの制御端末を参照する魔法のデバイスです。

6
Hari