Json 对jq中的值运行终端操作

Json 对jq中的值运行终端操作,json,base64,decode,jq,Json,Base64,Decode,Jq,这简化了我的输入: [ { "Index": 1, "Data": "aGVsbG8gaXRlbSAx" }, { "Index": 2, "Data": "dGhpcyBpcyBpdGVtIDI=" } ] 我需要用解码文本替换B64加密数据 我解码加密字符串的命令如下所示: base64-Djq1.6可以使用@base64d字符串格式化程序对base64数据进行内部解码: $ jq '[.[] | . + { Data: .Data

这简化了我的输入:

[
  { 
    "Index": 1, 
    "Data": "aGVsbG8gaXRlbSAx"
  }, 
  { 
    "Index": 2, 
    "Data": "dGhpcyBpcyBpdGVtIDI="
  }
]
我需要用解码文本替换B64加密数据

我解码加密字符串的命令如下所示:


base64-D
jq
1.6可以使用
@base64d
字符串格式化程序对base64数据进行内部解码:

$ jq '[.[] | . + { Data: .Data | @base64d }]' input.json
[
  {
    "Index": 1,
    "Data": "hello item 1"
  },
  {
    "Index": 2,
    "Data": "this is item 2"
  }
]
简言之:

map( .Data |= @base64d )

如果我想要的操作没有内置到jq中,我可以做类似的替换吗?@Dmitry这是一些很棒的功能!当我打算限制我的依赖,并分配我的工具,HOBBURW。我正在处理下一个版本的代码> JTC < /Cord>,一旦它准备好了(ETA是几个星期),我打算在包装上写代码> JTC <代码>,谢谢!如果我想要的操作没有内置到jq中,我可以做类似的替换吗?不容易,至少一般来说是这样。一种可能不明显的方法是使用
jq--stream