我正在写一个KSH shell脚本。它从JSON文件中读取,该文件包含控件字符,如\n
,\r
和\t
,而不是实际换行符或制表符(因此控制字符将被读取为实际字符串)。我正在使用jq
从这个JSON文件中解析我想要的东西,并将其附加到文本文件中。此文本文件最终还会包含\n
,\t
等字符串,而不是换行符,制表符等。我希望文本文件具有这些控制字符的实际含义。
例如,对于字符串"I\nam\na\ngood\nboy"
,我希望我的文件具有:
I
am
a
good
boy
关于如何在shell脚本中完成此任务的任何想法?
注意:我在KSH写作,但是bash等的答案是可以接受的。
答案 0 :(得分:4)
使用-r
参数告诉jq
使用原始字符串作为输出。
jq -r . <<EOF
"I\nam\na\ngood\nboy"
EOF
...发出精确的输出:
I
am
a
good
boy