我要使用 jq
package.json
中peerDependencies
中的键计数0
,请在docs.json
时从sections[].name === 'prerequesite'
中删除这就是我的解决方法(1):
if [[ $(cat package.json | jq '.peerDependencies | length') = 0 ]]; then
echo "Remove page prerequesite as no peer dependencies were found"
# do (2)
fi
这就是我开始解决(2)的方法:
cat docs.json | jq '.sections[] | select(.name != "Prerequisite")' > newSection.json
如何将newSection.json
放入文件中?
否则:
我的数组JSON如下所示:
{
"ignore": [
"**/__tests__/**",
"**/*.test.{js,jsx,ts,tsx}",
"**/*.spec.{js,jsx,ts,tsx}",
"**/*.d.ts"
],
"sections": [{
"name": "Introduction",
"content": "docs/introduction.md"
}, {
"name": "Prerequisite",
"content": "docs/prerequisite.md"
}]
}
我希望有
{
"ignore": [
"**/__tests__/**",
"**/*.test.{js,jsx,ts,tsx}",
"**/*.spec.{js,jsx,ts,tsx}",
"**/*.d.ts"
],
"sections": [{
"name": "Introduction",
"content": "docs/introduction.md"
}]
}
在我的tmp.json
文件中,我有:
如何使用命令行从数组中删除名称为prerequisite
的部分?
答案 0 :(得分:1)
您只需要使用select()
构造从JSON结构中删除包含.name
字段的对象。
if [[ $(jq '.peerDependencies | length' package.json) = 0 ]]; then
jq '.sections |= map(select(.name != "Prerequisite"))' docs.json
fi
然后,您可以使用> newSection.json
将docs.json
的修改后的内容重定向到新文件。