【问题标题】:Array of strings, wildcards and wget字符串、通配符和 wget 数组
【发布时间】:2014-10-02 18:04:33
【问题描述】:

我想要做的是使用 wget 直接通过 FTP 获取一些特定文件。我想使用字符串数组获取文件,并使用通配符与数组结合来选择获取哪些文件。

我的意思的例子:

我有一个数组

arr[0]=a

arr[1]=b

我使用 wget 连接到的目录 dir 中有一堆文件,我想要所有以 a 或 b 开头的文件(我的数组中的字符串)。

所以我尝试了以下方法:

wget $dir${arr[@]}*

它将获取所有以“a”开头但随后尝试连接的文件

"http://b*/". 

所以看起来如果我将目录添加到数组的每个元素中它可以工作,但这不是一个理想的情况。

我目前正在使用 Cygwin 的 Windows 版本,但我很快会转向一些 Unix 机器。

【问题讨论】:

    标签: arrays bash wildcard wget


    【解决方案1】:

    连接字符串和数组很少有预期的效果。改用 for 循环:

    arr=(a b)
    for var in "${arr[@]}"
    do
      wget "$dir$var*"
    done
    

    您还可以通过参数扩展获得类似于您的代码的内容:

    dir="ftp://host/dir/"
    arr=(a b)
    arr=( "${arr[@]/%/*}" )       # append asterisks
    echo wget "${arr[@]/#/$dir}"  # prepend dir 
    

    打印wget ftp://host/dir/a* ftp://host/dir/b*

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-28
      • 2013-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多