jq中的控制字符解析了JSON

时间:2017-12-01 01:29:30

标签: json bash shell ksh jq

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

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

I
am
a
good
boy

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

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

1 个答案:

答案 0 :(得分:4)

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

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

...发出精确的输出:

I
am
a
good
boy