Подавление stderr в GNU Parallel

1416
Jasiu

Я использую GNU Parallel для одновременного запуска команды несколько тысяч раз.

Чтобы получить логи исполнения я использую --filesи --results.

Чтобы получить хороший индикатор выполнения, пока он работает, я использую --etaи --progress.

Теперь моя проблема в том, что, хотя STDERR перенаправляется в файлы, он все еще печатается на терминал, что портит мой индикатор выполнения.

Как я могу подавить печать STDERR на терминал? Я все еще хочу, чтобы эта информация была в файлах журналов, поэтому я не могу просто включить команду 2>/dev/null.

Пока моя командная строка выглядит так:

cat input.txt | parallel -P 10 --progress --eta --files --results output_dir/ "./script.sh some-arg {}" 
4

1 ответ на вопрос

0
Ole Tange

If you want a nice bar, may I suggest --bar instead of --eta? You need version 20131122 or later.

This seems to work, since STDERR files are not printed, so you get nothing on STDERR apart from the --bar:

cat input.txt | parallel -P 10 --bar --files --results output_dir/ "./script.sh some-arg {}" >/dev/null 
Я использую параллель 20151122 с опцией `--bar`, и она не подавляет стандартную ошибку. David Z 8 лет назад 0
Вы используете --files? Ole Tange 8 лет назад 0

Похожие вопросы