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