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

如何在wget批量下载时从URL的title参数设置文件名?

无需Python脚本的wget批量下载命名方案

嘿,其实不用非得写Python脚本,咱们用wget搭配常见的shell工具就能轻松实现按URL里的title参数命名下载文件,给你几个实用的方案:

方案一:Shell循环+Awk提取title

这个方法用Awk来解析URL里的title参数,逻辑简单直观:

while read -r url; do
  # 跳过空行
  [ -z "$url" ] && continue
  # 提取title参数的值(处理title后还有其他参数的情况)
  filename=$(echo "$url" | awk -F'&title=' '{split($2, arr, "&"); print arr[1]}')
  # 用wget指定文件名下载
  wget -O "$filename" "$url"
done < a.txt

说明:

  • Awk先以&title=为分隔符拆分URL,再把第二部分用&拆分,取第一个元素就是纯净的title值,避免把后面的其他参数带进来。
  • 给filename和url加双引号,能兼容title里带空格、特殊字符的情况。

方案二:Shell循环+Sed正则提取title

如果你更熟悉正则,用Sed来捕获title参数也很方便:

while read -r url; do
  [ -z "$url" ] && continue
  # 用正则匹配捕获title参数的值
  filename=$(echo "$url" | sed -E 's/.*&title=([^&]*).*/\1/')
  wget -O "$filename" "$url"
done < a.txt

说明:

  • Sed的正则.*&title=([^&]*).*会匹配整个URL,捕获&title=后面直到下一个&(或URL结尾)的所有字符,\1就是捕获到的title值。
  • -E参数让Sed支持扩展正则,写法更简洁。

方案三:用xargs批量处理(进阶版)

如果想让命令更紧凑,也可以用xargs配合Awk/Sed来实现:

cat a.txt | xargs -I {} sh -c 'filename=$(echo "{}" | sed -E "s/.*&title=([^&]*).*/\1/"); wget -O "$filename" "{}"'

说明:

  • xargs会把a.txt里的每个URL作为参数传递给后面的shell命令,{}代表当前的URL。
  • 这个写法适合单行快速执行,不需要写循环脚本。

这些方案都不需要额外安装Python环境,在大多数Linux/macOS系统上默认就能运行,比写Python脚本更轻量化~

内容的提问来源于stack exchange,提问作者ooo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 11:42:42