已解析 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
我正在编写 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