병렬 명령 문자열 내 대체

병렬 명령 문자열 내 대체

여러 파일을 다운로드하여 해당 이름의 합을 md5에 저장하고 싶습니다.

cat list | parallel -j4 "md5=$(wget -O - {} | tee tmpfile_{#} | md5sum | cut -d ' ' -f 1); mv tmpfile_{#} $md5"

하지만 문제는 bash가 병렬 교체를 수행하기 전에 wget 항목을 실행하는 것 같다는 것입니다 {}. 그래서 wget은 다음에서 시작하려고 합니다.http://{}

그렇다면 하위 명령이 실행되기 전에 병렬은 어떻게 해당 변수를 대체합니까?

답변1

나중에 몇 가지 시행착오를 겪었습니다.

cat list | parallel -j4 'md5=$(wget -O - {} | tee tmpfile_{#} | md5sum); mv tmpfile_{#} ${md5%% *}'

bash가 먼저 무언가를 교체하는 것을 허용하지 않으 "려면 교체만 수행하세요.'

관련 정보