在 GNU Parallel 中抑制 stderr

在 GNU Parallel 中抑制 stderr

我正在使用 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 {}"

答案1

如果您想要一個不錯的酒吧,我可以建議您--bar代替嗎--eta?您需要版本 20131122 或更高版本。

這似乎有效,因為 STDERR 檔案不會被列印,所以除了以下內容之外,您在 STDERR 上什麼也得不到--bar

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

答案2

這對我有用:

parallel --bar --jobs 10 '(ffmpegthumbnailer -i "{}" -o "/tmp/${DIR}/{}.jpg" -f 2>/dev/null)'  ::: *.mp4

相關內容