You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Bash中从URL列表提取无扩展名的完整目录路径

URL目录路径提取实现方法

你可以直接使用以下awk命令完成需求:

awk -F'/' '
{
    has_param = (index($0, "?") > 0 || index($0, "#") > 0) ? 1 : 0
    sub(/[?#].*/, "", $0)
    base = $1 "//" $3 "/"
    for(i=4; i<=NF; i++) {
        if ($i == "") continue
        if (i == NF) {
            if (has_param || index($i, ".") > 0) break
        }
        base = base $i "/"
        res[base] = 1
    }
}
END {
    for (path in res) print "- " path
}
' URL.txt | sort

命令逻辑说明

  • 第一步先识别原URL是否带?查询参数或#锚点,标记为动态请求
  • 移除所有URL末尾的参数、锚点内容,仅保留纯路径部分
  • 拆分URL得到协议、域名部分,拼接成根路径后逐层遍历后续路径段
  • 遇到最后一段时,如果属于动态请求或者带.扩展名的文件,直接终止遍历,不纳入目录路径
  • 每遍历一级路径就拼接成完整目录存入数组自动去重,最后排序输出所有结果

你之前用的rev | cut逻辑仅能提取倒数一级目录,无法输出全层级目录路径,也没有处理参数过滤、扩展名过滤的逻辑,所以无法匹配需求。

内容的提问来源于stack exchange,提问作者Raza Abbas Jaffri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 05:18:02