我希望以字符串*.md
的形式列出所有值,无论它们出现在何处。如何在jq
[
{
"Home Page": "index.md"
},
{
"Chapters": [
{
"Foreword": "Aforeword.md"
},
{
"Chap1": "ch001.md"
},
{
"Chap2": "ch002.md"
}
]
}
]
答案 0 :(得分:2)
这是一个扫描所有* .md字符串的解决方案:
jq -r '.. | strings | select(endswith(".md"))'
输出:
index.md
Aforeword.md
ch001.md
ch002.md
如果您只想检查作为键值出现的字符串:
.. | objects | .[] | strings | select( endswith(".md"))
您可能希望修改选择标准以允许" .MD"等等。因此您可能希望使用test("\\.md$"; "i")