salvando a saída da linha de comando em um arquivo de texto?

3

Estou usando a seguinte linha de comando para analisar dados:

unpackdcm -scr ${in} -targ ${out} 

Este comando está imprimindo no status da tela e na descrição sobre o progresso no trabalho. Para salvar o status, fiz o seguinte:

unpackdcm -scr ${in} -targ ${out} >stat.txt

Mas não funcionou! Por favor, o que está errado?

    
por Gilles 21.10.2014 / 22:47

2 respostas

2

O > -sign representa um Redirecionamento de E / S . Com >stat.txt , você redireciona a saída padrão (stdout) do aplicativo para o arquivo stat.txt . Ele é redirecionado, então você não verá nenhuma saída no shell.

Se você quiser a saída no shell atual E o arquivo canaliza a saída para tee :

your_command | tee stat.txt

Ou ..

your_command | tee -a stat.txt

.. para anexar ao arquivo.

Seu aplicativo também pode gerar alguns erros. Eles ocorrem principalmente no erro padrão (consulte fluxos padrão ). Para redirecionar esse fluxo, use a seguinte sintaxe:

your_command 2>error.log
    
por 21.10.2014 / 22:56
2

É possível que a saída esteja sendo enviada para stderr , que não é capturado pelo operador > , que captura apenas stdout .

Em vez disso, se você estiver usando o shell bash, tente rotear stderr para stdout e em um arquivo usando o operador &> . Por exemplo:

unpackdcm -scr ${in} -targ ${out} &>stat.txt

Para redirecionar somente stderr , use isto:

unpackdcm -scr ${in} -targ ${out} 2>stat.txt
    
por 21.10.2014 / 22:55