【问题标题】:How can I save files with wget to numbered files with leading zeros?如何将带有 wget 的文件保存到带有前导零的编号文件中?
【发布时间】:2012-01-19 19:58:31
【问题描述】:

我正在尝试使用 wget 下载 .jpg 文件列表。服务器上的文件名都是随机的字母数字字符串;我想将它们保存为新的编号文件名,例如000.jpg、001.jpg 等,基于它们在输入文件中的列出顺序。

我遇到的问题是 BASH 去掉了前导零,所以我得到 000.jpg、1.jpg 等。

这是我的脚本:

picnum=000
for i in `cat $imglist`; do
    wget -O $picnum.jpg $i
    let picnum++
done

我找到的用于保留前导零的所有技术在这种情况下似乎都行不通,因此我非常感谢任何帮助。

【问题讨论】:

    标签: bash wget


    【解决方案1】:

    你不应该在cat 中使用 for i。对于您的示例,它可能有效,但您应该在 while 循环中使用 read from 来遍历文件中的行。有关详细信息,请参阅此链接:http://mywiki.wooledge.org/BashFAQ/001

    您可以使用 printf 用 0 填充您的数字。

    picnum=0
    while read -r image; do
        wget -O $(printf '%03d.jpg' "$picnum") "$image"
        (( picnum++ ))
    done < "$imglist"
    

    【讨论】:

      【解决方案2】:

      您需要对您的号码进行零填充。 试试这个:

      wget -O `printf "%03d" $picnum`.jpg $i
      

      【讨论】:

      • 我将不得不了解有关 printf 的更多信息;它显然不像我想象的那样工作。谢谢!
      猜你喜欢
      • 2012-06-27
      • 2019-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-25
      • 2012-12-27
      • 2012-01-19
      相关资源
      最近更新 更多