Suprimindo stderr no Paralelo GNU

4

Estou usando o GNU Parallel para executar um comando ao mesmo tempo milhares de vezes.

Para obter os registros da execução, estou usando --files e --results .

Para obter uma boa barra de progresso enquanto está em execução, estou usando --eta e --progress .

Agora, meu problema é que, enquanto o STDERR é redirecionado para os arquivos, ele ainda é impresso no terminal, o que corrompe minha barra de progresso.

Como posso suprimir a impressão de STDERR no terminal? Eu ainda quero ter essa informação nos arquivos de log, então não posso simplesmente colocar o comando em 2>/dev/null .

Até agora, minha linha de comando é assim:

cat input.txt | parallel -P 10 --progress --eta --files --results output_dir/ "./script.sh some-arg {}"
    
por Jasiu 29.07.2014 / 22:27

1 resposta

0

Se você quiser uma boa barra, sugiro --bar em vez de --eta ? Você precisa da versão 20131122 ou posterior.

Isso parece funcionar, já que os arquivos STDERR não são impressos, portanto, você não obtém nada no STDERR além do --bar :

cat input.txt | parallel -P 10 --bar --files --results output_dir/ "./script.sh some-arg {}" >/dev/null
    
por 30.07.2014 / 00:19