【发布时间】:2018-05-23 22:19:00
【问题描述】:
我有很多相当大的 JSON 日志需要导入到多个数据库表中。 我可以轻松解析它们并创建 1 个 CSV 用于导入。 但是如何解析 JSON 并获得 2 个不同的 CSV 文件作为输出? 简单(废话)示例:
testJQ.log
{"id":1234,"type":"A","group":"games"}
{"id":5678,"type":"B","group":"cars"}
使用
cat testJQ.log|jq --raw-output '[.id,.type,.group]|@csv'>testJQ.csv
我得到一个文件 testJQ.csv
1234,"A","games
5678,"B","cars"
但我想得到这个
types.csv
1234,"A"
5678,"B"
groups.csv
1234,"games"
5678,"cars"
这可以在不必两次解析 JSON 的情况下完成吗?第一次创建 types.csv,第二次创建 groups.csv 像这样?
cat testJQ.log|jq --raw-output '[.id,.type]|@csv'>types.csv
cat testJQ.log|jq --raw-output '[.id,.group]|@csv'>groups.csv
【问题讨论】:
-
jq 不会输出到文件,因此您将无法这样做。如果你想写入不同的文件,你总是需要一个单独的实例。