运行 对 jq 中值的终端操作
Run terminal operation on values in jq
这是我输入的简化:
[
{
"Index": 1,
"Data": "aGVsbG8gaXRlbSAx"
},
{
"Index": 2,
"Data": "dGhpcyBpcyBpdGVtIDI="
}
]
我需要用解码后的文本替换B64加密数据。
我解码加密字符串的命令如下所示:
base64 -D <<< "aGVsbG8gaXRlbSAx"
或 echo "aGVsbG8gaXRlbSAx" | base64 -D
如何使用 jq 修改每个 "Data"
值然后 return 整个 json 文件?
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 )
这是我输入的简化:
[
{
"Index": 1,
"Data": "aGVsbG8gaXRlbSAx"
},
{
"Index": 2,
"Data": "dGhpcyBpcyBpdGVtIDI="
}
]
我需要用解码后的文本替换B64加密数据。
我解码加密字符串的命令如下所示:
base64 -D <<< "aGVsbG8gaXRlbSAx"
或 echo "aGVsbG8gaXRlbSAx" | base64 -D
如何使用 jq 修改每个 "Data"
值然后 return 整个 json 文件?
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 )