json - 根据 shell 脚本中的字符串匹配从 JSON 数组中删除元素
问题描述
我想根据字符串匹配删除 JSON 元素(如果存在)。
我正在使用 shell 脚本。
样本输入:
["https://test-ci.cmxdev.com/dev/AD-885/?oauth=callback",
"https://test-ci.cmxdev.com/dev/INS-1676-a/?oauth=callback",
"https://test-jdtest.cmxdev.com?oauth=callback",
"https://localhost:3000?oauth=callback"]
样本输出(删除第二个元素):
["https://test-ci.cmxdev.com/dev/AD-885/?oauth=callback",
"https://test-jdtest.cmxdev.com?oauth=callback",
"https://localhost:3000?oauth=callback"]
解决方案
要从数组中删除等于特定值的所有元素,您可以从数组中“减去”值:
. - [.[1]]
否则,通常的方法是根据您想要的条件重建和过滤数组。
map(select(. != "https://test-ci.cmxdev.com/dev/INS-1676-a/?oauth=callback"))
推荐阅读
- python - subprocess.Popen() 不会运行 python 脚本,找不到 python 命令
- java - 如何将csv字符串转换为字节流
- jenkins - Jenkins 节点/代理无法连接到主 jenkins 服务器 - 无效的 X-Instance-Identity
- git - Gitk 由于奇怪的错误而无法工作 macOS 11 或更高版本需要
- combobox - PowerApps 上的组合框筛选
- mysql - SQL在匹配值上将多行合并为单行
- sql-server - 如何从 URL 下载 T-SQL 中的二进制文件
- azure-devops - 如何将变量传递给 YAML 管道中任务条件的模板
- flutter - Flutter 的 MaterialLocalizations 问题
- c - MPI - 如何使用 MPI_SCATTER 发送结构数组?或者也许只是字符串数组