gzip 使用 bash 解压缩 json 文件中的 属性

gzip decompress a property in a json file using bash

我必须验证 json 文件中 属性 的 base64 编码和 gzip 内容是否与使用 bash.

的原始内容相同

我已经能够使用 jq:

提取 属性
cat src/my-file.json | jq '.Attachment[] | .Contents["@Value"] | @base64d'

我试过使用 gzip 来解压这个,使用 @gzipd 过滤器

jq: error (at :798): gzipd is not a valid format

并将值传递给 gunzip 命令:

gunzip: unknown compression format

我尝试将内容写入名为 test.gz 的文件,然后使用 gunzip.

cat src/my-file.json | jq '.Attachment[] | .Contents["@Value"] | @base64d' > test.gz

gunzip: test.gz: not in gzip format

来自#1931

Let $B be an arbitrary base64 string, then $B | @base64d is undefined if base64 -D <<< $B is not a valid UTF-8 string.

下面是一个快速解决方法;输出原始 base64 字符串并使用 base64 实用程序对其进行解码:

jq -r '.Attachment[] | .Contents["@Value"]' src/my-file.json | base64 -d | gunzip