
Ich möchte mehrere Dateien herunterladen und sie in der MD5-Summe ihres Namens speichern:
cat list | parallel -j4 "md5=$(wget -O - {} | tee tmpfile_{#} | md5sum | cut -d ' ' -f 1); mv tmpfile_{#} $md5"
aber das Problem ist, dass bash den wget-Kram vor der Ausführung von parallelen Ersetzungen auszuführen scheint {}
... also will wget herunterladen vonhttp://{}
wie können also die Variablen vor der Ausführung des Unterbefehls parallel ersetzt werden?
Antwort1
einige Versuche und Irrtümer später:
cat list | parallel -j4 'md5=$(wget -O - {} | tee tmpfile_{#} | md5sum); mv tmpfile_{#} ${md5%% *}'
Ersetzen Sie einfach "
durch. '
Bash kann nicht zuerst etwas ersetzen.