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

使用JQ过滤GitHub API指定前缀仓库遇空结果问题

解决GitHub API结果的JQ过滤问题

问题分析与修正

你当前的核心问题是无法通过JQ过滤出名称以test-开头的仓库,主要是语法细节和转义字符导致的:

  1. 错误语法修正
    你尝试的jq -r '.[] | .name | select(.name | startswith("ng-"))'存在逻辑错误——当通过.name提取出名称字段后,select的上下文已经是字符串,不能再用.name,应直接写select(startswith("test-"))。

  2. 正确命令示例

    • 若要保留完整的仓库对象:
      jq '.[] | select(.name | startswith("test-"))'
      
    • 若只需要提取仓库名称:
      jq -r '.[] | .name | select(startswith("test-"))'
      
  3. 转义字符问题
    原命令中的"是HTML转义的双引号,在bash环境中需替换为普通双引号或单引号,避免导致匹配规则失效,比如将"test-"改为"test-"。

验证测试

针对你提供的示例JSON(仓库名称为Hello-World),将过滤条件改为startswith("Hello-")即可匹配成功:

jq -r '.[] | .name | select(startswith("Hello-"))'

执行后会输出:Hello-World

完整curl命令

curl -X GET \
  --url "${API_URL_PREFIX}/orgs/${ORG}/repos?type=private&page=${PAGE}&per_page=100" \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer $GITHUB_TOKEN" | jq -r '.[] | .name | select(startswith("test-"))'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 03:40:15