bash - 在 bash 脚本中使用 sed 和 jq
问题描述
如何使用 sed 和 jq 将键名中的 _ 替换为符号 a
{“产品名称”:“kl”}
应该成为
{“产品名称”:“kl”}
在 bash 脚本中
解决方案
不需要sed
;这很容易做到jq
:
$ jq '{ productaname: .product_name }' <<<'{ "product_name":"kl" }'
{"productaname":"kl"}
如果要在对象的所有键中用 a 替换下划线:
$ jq 'with_entries(.key |= gsub("_"; "a"))' <<<'{ "product_name":"kl", "foo_bar":12 }'
{"productaname":"kl","fooabar":12}
从文档中with_entries
:
to_entries, from_entries, with_entries
这些函数在对象和键值对数组之间进行转换。如果
to_entries
传递一个对象,则对于输入中的每个 k: v 条目,输出数组包括{"key": k, "value": v}
.
from_entries
进行相反的转换,并且with_entries(foo)
是 的简写to_entries | map(foo) | from_entries
,用于对对象的所有键和值进行某些操作。from_entries
接受键、键、名称、名称、值和值作为键。
推荐阅读
- docker - 当 Minikube (k8s) 中的 Pod 声明卷时,如何强制所有这些卷实际上位于裸机*主机*上的某个磁盘上?
- git - 将两个合并合并为一个(或者,我可以更改提交的父级吗?)
- java - FTP 文件下载中的 Apache Vfs 错误“无法复制文件名,因为它不存在
- android - 使从自己的服务器发送的 PushNotifications 在 Android 的后台可见
- r - 从 shapefile 创建自定义 json 映射
- python - 叶色图图例等于 bin 宽度
- excel - 如何将整行从工作表复制到另一个工作表
- excel - 索引匹配公式显示错误结果
- arrays - 从我的地图函数中获取类型错误
- vue.js - 什么时候在 Vue 发射名称中使用冒号?