
Я хочу загрузить несколько файлов и сохранить их в md5-сумме их имен:
cat list | parallel -j4 "md5=$(wget -O - {} | tee tmpfile_{#} | md5sum | cut -d ' ' -f 1); mv tmpfile_{#} $md5"
но проблема в том, что bash, похоже, выполняет wget-файлы до выполнения параллельных замен {}
... поэтому wget хочет загрузить данные сhttp://{}
так как же parallel может заменить свои переменные до выполнения подкоманды?
решение1
позже методом проб и ошибок:
cat list | parallel -j4 'md5=$(wget -O - {} | tee tmpfile_{#} | md5sum); mv tmpfile_{#} ${md5%% *}'
просто замените "
на '
не позволяет bash заменить что-либо первым