gpt4 book ai didi

bash - wget 排除文件名列表

转载 作者:行者123 更新时间:2023-12-05 04:14:48 24 4
gpt4 key购买 nike

我需要使用 wget 从 ftp 服务器获取数据。我需要它从一个目录中获取除文件名列表之外的所有文件。所以,例如:

fetchDir="ftp://user:pass@host/path/to/FileName*.csv.gz"
excludeList="FileName314.csv.gz, FileName271.csv.gz, FileName161.csv.gz"

wget ${fetchDir} --reject ${excludeList} -nc

然而,这给了我一个看起来像这样的错误:

...
Rejecting ‘FileName000.csv.gz’.
Rejecting ‘FileName001.csv.gz’.
No matches on pattern ‘FileName*.csv.gz’.
--2015-12-08 14:27:28-- http://filename314.csv.gz/
Resolving filename314.csv.gz (filename314.csv.gz)... failed: Name or service not known.
wget: unable to resolve host address ‘filename314.csv.gz’

如何更改我的代码以使其接受我的拒绝?

最佳答案

--reject 选项需要一个逗号分隔的列表。但是,您的 excludeList 变量包括空格和逗号。解释命令时,shell 执行 word splitting 之后 shell 变量已展开。

这导致只有第一个文件名模式被视为 --reject 选项的参数;其余列表成员将被解析为额外的 URL。变量赋值应该改为:

excludeList="FileName314.csv.gz,FileName271.csv.gz,FileName161.csv.gz"

注意:实际上不需要双引号,因为字符串中没有特殊字符。

关于bash - wget 排除文件名列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34156263/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com