【问题标题】:How do I make Wget name files as part of URL?如何将 Wget 名称文件作为 URL 的一部分?
【发布时间】:2015-06-29 00:16:00
【问题描述】:

短篇小说:

我希望 Wget 命名下载的文件,因为它们匹配正则表达式令牌 ([^/]*)

wget -r --accept-regex="^.*/([^/]*)/$" $MYURL

全文:

我使用 GNU Wget 递归下载特定 WordPress 网站下的特定文件夹。我使用正则表达式只接受帖子而不接受其他任何内容。以下是我的使用方法:

wget -r --accept-regex="^.*/([^/]*)/$" $MYURL

它有效,Wget 遵循所有所需的 URL。但是,它将文件保存为.../last_directory/index.html,但我希望将这些文件保存为last_directory.html.html 部分是可选的)。

有没有办法单独使用 Wget 来做到这一点?或者您会建议如何使用sed 或类似工具做同样的事情?

【问题讨论】:

    标签: regex sed web-crawler wget


    【解决方案1】:

    你可以使用 sed。

    wget -r --accept-regex="^.*/([^/]*)/$" $MYURL |  sed 's~\(.*\)/[^.]*~\1~'
    

    示例:

    $ echo '/foo/last_directory/index.html' | sed 's~\(.*\)/[^.]*~\1~'
    /foo/last_directory.html
    

    【讨论】:

    • 如果我猜对了,那么您建议 (1) 下载所有文件,然后 (2) 使用 bash 脚本遍历所有文件, (3) 应用 sed 命令重命名每个文件.理想情况下,我想避免在下载后遍历文件。不幸的是,如果文件夹有额外的文件,这种方法效果不佳 - 我只想重命名新下载的文件。此脚本会将其他文件上移一个文件夹。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-27
    • 1970-01-01
    • 2016-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多