【发布时间】:2017-11-30 16:06:24
【问题描述】:
我正在尝试将单个文件的所有内容 JSON 编码为单个 JSON 字符串,用于 BASH 中的 curl 请求。该文件是文本,因此不需要进行 base64 编码。最重要的是文件是多行的,换行很重要。我正在尝试对 PEM 文件进行编码。如果我从文件中删除 \n,它会破坏 PEM 格式。我试图看看 jq 是否会有所帮助,但我没有看到任何选项告诉它编码换行符。
这里有人有什么提示吗?
【问题讨论】:
-
在 BASH 中手动制作 JSON 或者使用 Python 或 Perl 会更容易吗?
-
@Ben, ...不,绝对不会更容易使用 bash 生成 JSON —— 很多微妙的警告,以及一些在 JSON 中有效的内容根本无法在 bash 字符串变量中表示(例如,NUL ——
jq会将它们正确编码为\u0000,而 bash 甚至无法读取它们,除非通过诡计,例如将 NUL 表示为数组中元素之间的分隔符)。