ファイル出力をSTDOUTにリダイレクトする方法は?

ファイル出力をSTDOUTにリダイレクトする方法は?

ここに似た質問 ファイル出力を標準出力にリダイレクトする方法は? しかし、そこに提示された解決策は普遍的ではありません。

私の質問:STDOUTで出力を生成するコマンドがあります。同時にパラメータを指定して、ファイルに直接別の出力を生成することもできます。

tcsh$ hmmscan --domtblout FILEOUTPUT Pfam-A.hmm query.fasta

Pfam-A.hmmはデータベースファイル(入力)です。 query.fastaも入力ファイルです。

FILEOUTPUTをSTDOUTにリダイレクトする方法は?

背景:何千もの入力にこのコマンドを使用する予定であり、各入力に対して個別に実行する必要があります。コマンドはPythonスクリプトから呼び出され、subprocessモジュールを使用して対応するFILEOUTPUTをメモリ/変数として直接読みたいと思います。 subprocessモジュールを使用してSTDOUTを取得する方法を知っているので、FILEOUTPUTをSTDOUTにリダイレクトできる場合...

私は次のことを試しました(最終的にエラーまたはファイルが生成されます)。

tcsh$ hmmscan --domtblout >/dev/tty Pfam-A.hmm query.fasta
tcsh$ hmmscan --domtblout >(mypipe) Pfam-A.hmm query.fasta
tcsh$ hmmscan --domtblout >$ Pfam-A.hmm query.fasta
tcsh$ hmmscan --domtblout >($1) Pfam-A.hmm query.fasta
tcsh$ hmmscan --domtblout >cat Pfam-A.hmm query.fasta
tcsh$ hmmscan --domtblout test.tab Pfam-A.hmm query.fasta >/dev/tty

答え1

hmmscanプログラムが通常のファイルではなくstdoutに書き込むようにするには、/dev/stdout代わりに一般的なファイル名を指定してください。例えば

$ hmmscan --domtblout /dev/stdout Pfam-A.hmm query.fasta

関連情報