Como redirecionar a saída para o arquivo para STDOUT?

0

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
    
por cytosine 23.10.2018 / 01:28

1 resposta

0

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
    
por 23.10.2018 / 02:32