【问题标题】:jq: merge array files is splitting the arraysjq:合并数组文件正在拆分数组
【发布时间】:2021-09-08 12:11:14
【问题描述】:

我的目录中有几个 json 文件:

/home/jeusdi/projects/salut/mpi/hes-mpi-api-service/mock-expectations/
├── cobertures-expectation.json
├── comunitats-expectations.json
├── localitats-expectations.json
├── ocupacions-expectations.json
├── paisos-expectations.json
├── provincies-expectation.json
└── tipusvia-expectation.json

每一个都是一个数组。我需要将它们合并到一个 json 数组文件中。

我尝试像这样使用-s 选项:

$ jq -s '.[]' \
  ~/projects/salut/mpi/hes-mpi-api-service/mock-expectations/*.json > \
  ~/projects/workarea/salut/mpi/mockserver/config/expectations.json

然而,当我得到合并文件的长度时,我得到:

$ jq length ~/projects/workarea/salut/mpi/mockserver/config/expectations.json                                                                      
1
1
142
8
3
1
1

我也试过这个命令:

$ jq -s . \
  ~/projects/salut/mpi/hes-mpi-api-service/mock-expectations/*.json > \
  ~/projects/workarea/salut/mpi/mockserver/config/expectations.json

尽管如此长度命令正在获取:

$ jq length ~/projects/workarea/salut/mpi/mockserver/config/expectations.json                                                                  
7

关于如何将所有这些文件合并到一个单独的 json 数组文件中的任何想法?

【问题讨论】:

  • 使用jq -s add

标签: jq


【解决方案1】:

考虑以下文件结构:

==> first.json <==
[ 1, 2, 3, 4, 5 ]

==> second.json <==
[ 6, 7, 8, 9, 10 ]

==> third.json <==
[ 11, 12, 13, 14, 15 ]

然后,我们可以使用以下 JQ 命令创建包含这 3 个文件的单个数组:

jq -s add first.json second.json third.json

结果:

[
  1,
  2,
  3,
  4,
  5,
  6,
  7,
  8,
  9,
  10,
  11,
  12,
  13,
  14,
  15
]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多