回显所有与正则表达式匹配的 URL

回显所有与正则表达式匹配的 URL

对于我正在进行的项目,我需要获取某个域的某个文件夹中的所有 URL 的列表,或者更好的是,获取所有与正则表达式匹配的 URL 的列表。

我想使用 bash 来执行此操作,以避免安装任何我永远不会使用的程序,但如果有使用我可能已经拥有的程序(例如 FireFox)的解决方案,请继续告诉我。

感谢您的时间。

答案1

我已经弄清楚了在我的情况下如何管理这个问题,对于其他人来说应该也是一样的,你应该能够调整这个过程以适用于任何 URL。

  1. 切换到新目录
    首先我们应该切换到一个新的目录,以避免文件丢失或在我们需要它们之后被保留。
    mkdir ~/Desktop/dev
    cd ~/Desktop/dev
  2. 使用以下方式获取 URLwget
    接下来我们使用该wget命令来查找域中文件和文件夹的所有 URL,对我来说,该命令是:
    wget -o ./urls.txt --spider -r --reject="index.html" --no-verbose --no-parent https://downloads.tuxfamily.org/godotengine/
    只需替换上述命令中的 URL,它就会创建一个urls.txt充满 URL 和一堆其他废话的文本文件()。
  3. 移除留下的文件夹wget
    wget将留下一个名为您输入 URL 的域名的文件夹。此文件夹中没有重要信息,因此请继续使用命令rm或文件管理器将其删除。
  4. 构建正则表达式来提取实际的 URL
    这是最难的部分,我建议urls.txt在文本编辑器中打开,或者允许使用正则表达式查找并打开正则表达式在浏览器中,现在您必须构建一个。找到与 URL 匹配的正则表达式后,运行命令:
    grep -o -E "(https.*\/([0-9](\.[0-9])+)\/(mono\/)?Godot_v\2[-_]stable[_-](mono_)?((win)?(x11[\._])?(osx\.?)?)((32)?(64)?)?((\.exe)?(\.fat)?)\.zip)" ./urls.txt >> urls\ filtered.txt
    这会将与正则表达式匹配的所有行复制到文本文件 ( urls filtered.txt)。用您的正则表达式替换正则表达式(引号中的位)。

完成所有这些之后,您将得到一个包含您需要的所有 URL 的文本文件。

相关内容