Para fazer com que o programa hmmscan grave em stdout em vez de um arquivo normal, especifique /dev/stdout
em vez do nome normal do arquivo. por exemplo,
$ hmmscan --domtblout /dev/stdout Pfam-A.hmm query.fasta
Problema semelhante aqui Como redirecionar a saída do arquivo para a stdout? No entanto, a solução dada lá não é universal.
Meu problema: Eu tenho um comando que produz saída para STDOUT. Ao mesmo tempo, posso especificar via argumentos para produzir outra saída que vai direto para um arquivo.
tcsh$ hmmscan --domtblout FILEOUTPUT Pfam-A.hmm query.fasta
Pfam-A.hmm é um arquivo de banco de dados (entrada); query.fasta também é um arquivo de entrada
Como posso redirecionar FILEOUTPUT para STDOUT?
Antecedentes: Eu pretendo usar o comando em milhares de entradas e preciso executá-lo para cada uma delas separadamente. O comando é chamado dentro de um script Python, e eu gostaria de ler seu FILEOUTPUT diretamente na memória / variável usando o módulo subprocess. Eu sei como obter o STDOUT com o módulo de subprocesso; então se eu pudesse redirecionar FILEOUTPUT para STDOUT ...
Eu já tentei coisas assim (acabei com erros ou criei arquivos):
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
Para fazer com que o programa hmmscan grave em stdout em vez de um arquivo normal, especifique /dev/stdout
em vez do nome normal do arquivo. por exemplo,
$ hmmscan --domtblout /dev/stdout Pfam-A.hmm query.fasta