git - JQ - 如何定义过滤器以从输出数组中删除括号、引号和逗号

标签 git output jq xargs

我需要将输出数组转换为没有括号、引号和逗号的行,以便它可以用于创建 git 克隆。

这是我的原始查询

curl -s http://bitbucketlocalserver:7990/rest/api/1.0/projects/PROJECT_NAME/repos?per_page=20 ^
-u user:pass | H:\Downloads\Win64\jq-win64.exe -r "[.values[] | ((.links.clone[] | select(.name==\"http\") | .href)  + \" \" +  .name)]"  

它返回格式的输出
[
   "http://bitbucketlocalserver:7990/scm/PROJECT_NAME/gitrepo1.git GitRepository1",
   "http://bitbucketlocalserver:7990/scm/PROJECT_NAME/gitrepo1.git GitRepository2"
]

我想将输出用作另一个命令的输入,如下所示
 curl -s http://bitbucketlocalserver:7990/rest/api/1.0/projects/PROJECT_NAME/repos?per_page=20 ^
-u user:pass | H:\Downloads\Win64\jq-win64.exe -r "[.values[] | ((.links.clone[] | select(.name==\"http\") | .href)  + \" \" +  .name)]"   | ^
 H:\Utilities\Git\usr\bin\xargs.exe -n 2 git clone -b release-dev

为了能够使用这个命令,jq命令的输出需要是这样的
http://bitbucketlocalserver:7990/scm/PROJECT_NAME/gitrepo1.git GitRepository1
http://bitbucketlocalserver:7990/scm/PROJECT_NAME/gitrepo1.git GitRepository2

第一部分是this link的一部分

我需要对 JQ 过滤器进行哪些更改才能执行此操作?实际上,我需要从 BitBucket 项目中克隆 40 多个存储库,我想创建一个简单的脚本,我不必先获取列表。

最佳答案

您可以简单地将以下 jq 过滤器添加到生成两个字符串数组的过滤器上:

.[]

或者更经济地,只需从 jq 查询中删除外部方括号。

关键是 -r 选项仅去除 JSON 字符串(不是复合实体中的字符串)输出上的双引号。

关于git - JQ - 如何定义过滤器以从输出数组中删除括号、引号和逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58566524/

相关文章:

json - jq:对象不能是 csv 格式的,只能是数组

json - jq:从嵌套的 JSON 映射

git - GitLab 中名为 [1] 的分支是什么?

angularjs - 致命的 : unable to access 'https://github.com/gabelerner/canvg.git/' : Peer reports incompatible or unsupported protocol version

c - 在 C 的标准输出中恰好在 1 个字符之后打印一些内容

powershell - 如何设置文本框以允许多行和可滚动性

git - 如何在 Powershell 中使用 SSH key 推送到两个不同的 GitHub 帐户?

git - 将本地 git fork 的 repo 分支与远程原始分支的更改同步

python - 如何处理原始数据(在 python 中)?

jq - 如何在jq中选择多个字段?