如何使用JQ截取JSON中id字段值的前8位以缩短字段长度
JQ实现方案
使用以下JQ命令即可完成需求:
jq 'map(.id |= .[:8])' 你的JSON文件路径
命令说明
map()用于遍历JSON数组中的每一个元素,对每个元素执行括号内的修改逻辑.id |= .[:8]是JQ的更新赋值语法,将每个对象的id字段替换为自身字符串的前8位:JQ字符串切片遵循左闭右开规则,[:8]等价于从索引0取到索引7,刚好截取前8个字符。
如果需要直接处理管道传入的JSON内容,也可以使用以下写法:
# 示例:直接处理输入的JSON字符串 echo '[ { "id": "35a97c36397886b93bd5619f38c676e739f7f834f82838dcfed602da1d3abf74", "name": "this is title one" }, { "id": "a547d0112840946aa9e5c266261888d6ab7706e69fc7bb7fdbf907ea2d3da735", "name": "this is title two" } ]' | jq 'map(.id |= .[:8])'
执行后输出结果完全符合要求的格式。
内容的提问来源于stack exchange,提问作者Estu Fardani
相关产品推荐
相关产品推荐

