
我想下載多個檔案並將它們保存到其名稱的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 先替換某些內容