Unterdrückung von stderr in GNU Parallel

1564
Jasiu

Ich verwende GNU Parallel, um einen Befehl mehrere tausend Mal gleichzeitig auszuführen.

Um Protokolle der Ausführung zu erhalten, verwende ich --filesund --results.

Um eine schöne Fortschrittsanzeige zu erhalten, verwende ich --etaund --progress.

Nun, mein Problem ist, dass, während STDERR zu den Dateien umgeleitet wird, es immer noch auf dem Terminal gedruckt wird, was meine Fortschrittsanzeige beschädigt.

Wie kann ich das Drucken von STDERR auf das Terminal unterdrücken? Ich möchte diese Informationen immer noch in den Protokolldateien haben, sodass ich den Befehl nicht einfach einpacken kann 2>/dev/null.

Bisher sieht meine Befehlszeile so aus:

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

1 Antwort auf die Frage

0
Ole Tange

Wenn Sie eine schöne Bar wünschen, kann ich --barstattdessen vorschlagen --eta? Sie benötigen die Version 20131122 oder höher.

Dies scheint zu funktionieren, da STDERR-Dateien nicht gedruckt werden, so dass Sie nichts anderes als STDERR erhalten --bar:

cat input.txt | parallel -P 10 --bar --files --results output_dir/ "./script.sh some-arg {}" >/dev/null 
Ich verwende parallele 20151122 mit der `--bar`-Option und unterdrückt nicht den Standardfehler. David Z vor 8 Jahren 0
Verwenden Sie --files? Ole Tange vor 8 Jahren 0