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

如何使用scp_download基于匹配规则批量下载Tectia服务器的文件

报错的核心原因:ssh包的scp_download函数的通配符遵循POSIX Shell Glob匹配规则,不支持正则语法,你之前使用的\d、.*、{3}这类正则表达式写法无法被SCP识别,因此会触发找不到文件的报错。

可行方案

方案1:使用符合Glob规则的模式匹配批量下载

仅使用SCP支持的通配符编写匹配规则:

  • *:匹配任意长度的任意字符
  • ?:匹配单个任意字符
  • [0-9]:匹配单个0-9范围内的数字

对应你的路径规则的写法如下:

# glob参数需设置为TRUE开启通配符匹配(部分版本默认开启,显式声明兼容性更好)
scp_download(
  session, 
  "/directory/subfolder/A[0-9][0-9][0-9]/abcde[0-9][0-9][0-9].csv", 
  to = tempdir(),
  glob = TRUE
)

注意:该方案无法保证文件夹后缀数字和文件名后缀数字完全同步,可能匹配到/A001/abcde002.csv这类错位文件,对匹配精度要求高的场景推荐用方案2。

方案2:生成预定义路径字符串批量下载

因为你的路径规则完全可预测,直接生成所有符合要求的路径列表传入下载即可,不存在匹配兼容问题,且能严格保证数字同步:

# 配置需要下载的数字范围
start <- 1
end <- 200 # 替换为你实际需要的最大数字

# 批量生成所有路径
target_files <- sapply(start:end, function(num) {
  num_str <- sprintf("%03d", num) # 生成三位补零的数字字符串
  sprintf("/directory/subfolder/A%s/abcde%s.csv", num_str, num_str)
})

# 执行批量下载
scp_download(session, target_files, to = tempdir())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 09:54:01