![GNU Parallel에서 stderr 억제](https://rvso.com/image/1417399/GNU%20Parallel%EC%97%90%EC%84%9C%20stderr%20%EC%96%B5%EC%A0%9C.png)
저는 GNU Parallel을 사용하여 동시에 명령을 수천 번 실행하고 있습니다.
내가 사용하고 있는 실행 로그를 얻으려면 --files
및 --results
.
실행되는 동안 멋진 진행률 표시줄을 얻으려면 --eta
and 를 사용하고 있습니다 --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