我需要下载大约 100 个软件包,因此我使用 wget-list 来简化操作。但是我的问题是,一旦我制作了列表(我假设它是 .txt 格式),是否有办法在其中插入 wget 会忽略的注释?如下所示:
#This is a comment
http://someurl.com
http://anotherurl.com
答案1
它没有看起来像:
如果
--force-html
没有指定,那么文件应该由一系列 URL 组成,每行一个。
您可以尝试 HTML 样式的评论:<!-- Comment -->
-或许这些被解释为评论,尽管我不指望它。
您还可以使用--force-html
参数并输入 HTML - 您可以自由地在这种格式中随意发表评论。缺点是它会增加很多混乱:
<!-- This is a comment -->
<a href="http://someurl.com"></a>
<a href="http://anotherurl.com"></a>
答案2
您可以通过管道grep
或sed
删除评论:
grep -v '^#' ~/list.wget | wget -i- -c -B http://base.url.if_needed
答案3
只需在注释中添加不带注释的注释,wget 就会将它们简单地视为无效的 URL。
答案4
我使用以下列表测试了 wgethttps://en.wikipedia.org/wiki/Comparison_of_programming_languages_%28syntax%29#Inline_comments
我发现 wget 不支持注释字符。但是,以下操作会快速生成“无效 URL”错误:
:测试评论 1 列表:无效 URL :测试评论 1:缺少方案 :: 测试评论 2 列表:无效 URL :: 测试评论 2:缺少方案 # 测试评论 3 列表:无效 URL http://# 测试评论 3:无效主机名 // 测试注释 4 列表:无效 URL // 测试注释 4:缺少方案
这些内容未在维基百科文章中列出,但也会导致快速出现“无效 URL”错误
/ 测试评论 1 列表:无效 URL / 测试评论 1:缺少方案 [ 测试注释 1 列表:无效 URL http://[ 测试注释 1:未终止的 IPv6 数字地址 @测试评论1列表:无效的URL http://@测试评论1:无效的用户名 ? 测试注释 1 列表:无效 URL http://? 测试注释 1:无效主机名
其余的注释引导字符串都导致 wget 尝试使用 DNS 解析域名,从而产生至少八行错误输出。
我还发现 wget 会扫描整个列表文件,并在开始获取之前构建要获取的 URL 列表。例如,如果您有一个包含以下内容的列表文件:
# 测试评论 1 # 测试评论 2 http://superuser.com/questions/265711/commenting-in-a-wget-list # 测试评论 3 # 测试评论 4 # 测试评论 5 # 测试评论 6
wget 输出为:
列表:无效的 URL http://# 测试评论 1:无效的主机名 列表:无效的 URL http://# 测试评论 2:无效的主机名 列表:无效的 URL http://# 测试评论 3:无效的主机名 列表:无效的 URL http://# 测试评论 4:无效的主机名 列表:无效的 URL http://# 测试评论 5:无效的主机名 列表:无效的 URL http://# 测试评论 6:无效的主机名 --2015-08-19 14:03:55-- http://superuser.com/questions/265711/commenting-in-a-wget-list 正在解析 superuser.com (superuser.com)...190.93.247.58, 190.93.244.58, 141.101.114.59, ... 连接到 superuser.com (superuser.com)|190.93.247.58|:80... 已连接。 HTTP 请求已发送,正在等待响应...200 OK <剪辑>
因此,虽然 : :: # / // [ @ ? 都可以安全地用作注释引导字符,但产生的错误将首先输出,并且不会与 wget 尝试获取页面一致。