【问题标题】:How to get only values from this json code?如何仅从此 json 代码中获取值?
【发布时间】:2018-01-23 20:38:10
【问题描述】:

我想以字符串*.md 的形式列出所有值,无论它们出现在哪里。如何在jq中实现这一点

[
  {
    "Home Page": "index.md"
  },
  {
    "Chapters": [
      {
        "Foreword": "Aforeword.md"
      },
      {
        "Chap1": "ch001.md"
      },
      {
        "Chap2": "ch002.md"
      }
    ]
  }
]

【问题讨论】:

  • 请更准确地说明问题。特别参见 stackoverflow.com/help/mcve 。您是否正在查找所有以“.md”结尾的字符串的键值,无论它们出现在哪里?
  • @peak 是的。这就是想要的。我根据您的评论修改了问题。

标签: json jq


【解决方案1】:

这是一个扫描所有 *.md 字符串的解决方案:

jq -r '.. | strings | select(endswith(".md"))'

输出:

index.md
Aforeword.md
ch001.md
ch002.md

如果您只想检查作为键值出现的字符串:

.. | objects | .[] | strings | select( endswith(".md"))

您可能想要修改选择标准以允许“.MD”等。因此您可能想要使用test("\\.md$"; "i")

【讨论】:

  • @RomanPerekhrest - 请取消删除您的答案!这是值得和有启发性的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-21
  • 1970-01-01
  • 1970-01-01
  • 2018-06-06
  • 1970-01-01
相关资源
最近更新 更多