已解析 jq 中的控制字符 JSON

Control characters in jq parsed JSON

我正在编写 KSH shell 脚本。它从一个 JSON 文件中读取,该文件包含 \n\r\t 等控制字符来代替实际的换行符或制表符(因此控制字符被读取为实际字符串)。我正在使用 jq 从这个 JSON 文件中解析我想要的内容,并将其附加到文本文件中。该文本文件最终还包含 \n\t 之类的字符串,而不是换行符、制表符等。我希望文本文件具有这些控制字符的实际含义。

例如,对于字符串 "I\nam\na\ngood\nboy",我希望我的文件具有:

I
am
a
good
boy

关于如何在 shell 脚本中完成此操作的任何想法?

注意:我正在用 KSH 写作,但 bash 等格式的答案是可以接受的。

使用 -r 参数告诉 jq 使用原始字符串作为输出。

jq -r . <<EOF
"I\nam\na\ngood\nboy"
EOF

...发出精确输出:

I
am
a
good
boy