我正在尝试将一个较大的JSON文件(〜4个Mio元素)拆分为单独的文件(每个元素一个文件)。
文件有点像这样:
{
"books":
[
{
"title": "Professional JavaScript - \"The best guide\"",
"authors": [
"Nicholas C. Zakas"
],
"edition": 3,
"year": 2011
},
{
"title": "Professional JavaScript",
"authors": [
"Nicholas C.Zakas"
],
"edition": 2,
"year": 2009
},
{
"title": "Professional Ajax",
"authors": [
"Nicholas C. Zakas",
"Jeremy McPeak",
"Joe Fawcett"
],
"edition": 2,
"year": 2008
}
]
}
说过,我想将每本书分成一个单独的文件,我正在使用以下命令:
cat books.json | jq -c -M '.books[]' | while read line; do echo $line > temp/$(date +%s%N).json; done
对于最后两项,一切正常,因为书名不包含任何引号。但是,在第一个中,\“被替换为”会导致JSON文件损坏,因为后续的解析器-当然-会将“解释为元素的边界。
我尝试使用jq -r,但是没有帮助。
我正在使用CentOS 7附带的jq版本
[root@machine]$ jq --version
jq-1.6
任何建议和非常感谢!