замена внутри параллельной командной строки

замена внутри параллельной командной строки

Я хочу загрузить несколько файлов и сохранить их в 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 заменить что-либо первым

Связанный контент