使用jq
将json数组转换为csv会产生以下结果:
$ echo '["a",1,true,"comment"]' | jq '.|@csv'
"\"a\",1,true,\"comment\""
我很惊讶整个数组变成了一个字符串而不是一个值列表。我该怎么做才能获得
"a",1,true,"comment"
代替?
答案 0 :(得分:3)
您误解了@
过滤器的要点。这些是字符串格式过滤器,它们产生字符串。因此@csv
将数组的字符串表示形式返回为csv行。这恰恰是它应该具备的。它返回" unstringified"是错误的。版本,因为无法进一步处理。
如果你想要原始的" unstringified"输出,使用-r
原始输出选项。
$ echo '["a",1,true,"comment"]' | jq -r '@csv'
"a",1,true,"comment"