unix 使用GNU并行多个命令

rta7y2nd  于 2023-08-04  发布在  Unix
关注(0)|答案(2)|浏览(152)

我正在使用GNU并行下载一批文件,然后我想压缩它们在同一时间与gzip。
我有一个文件的https地址列表(http_list)

cat htpp_list | parallel -j 72 wget

字符串
它将下载扩展名为 *.jpeg的文件
然后我这样做:

ls -al *.jpeg | awk '{print $NF}' > file_list
cat file_list | parallel -j 72 gzip


有没有一种方法可以只写一行代码,同时下载和压缩?

qij5mzcb

qij5mzcb1#

不分析ls。使用glob或find
不要虐待猫。使用<file而不是cat file | command
使用shellcheck检查脚本。
我想同时用gzip压缩它们。
我看没有理由把它们压缩起来。

work() {
   name=$(basename "$1")
   curl "$1" | gzip > "$name".jpeg.gz
}
export -f work
parallel -j 72 work <htpp_list

字符串

vybvopom

vybvopom2#

您可以尝试以下内容:

cat htpp_list | parallel -j 72 wget; ls -al *.jpeg | awk '{print $NF}' | parallel -j 72 gzip

字符串
但再想想,因为这条线变得相当复杂

相关问题