如何在unix的json文件中添加换行符

时间:2018-06-21 21:27:56

标签: json unix hive

我有一些json文件,其中文件中没有换行符(\ n)。因此,当我尝试将文件加载到HIVE表中时,某些数据将被忽略。如何在表示表中行的每个JSON对象之后的后面的json文件中插入换行符?

2 个答案:

答案 0 :(得分:0)

如果您的JSON始终以相同的属性开头,则可以将其用作确定新JSON对象开始的签名,并用\n<signature>替换每次出现的情况

例如{"id":"12","name":"Nick"}{"id":"13","name"="Bob"}

在这种情况下,起始签名为{"id":,应将其替换为\n{"id":

例如,使用perl:

echo '{"id":"12","name":"Nick"}{"id":"13","name"="Bob"}' | perl -pe 's/(\{\"id\":)/\n$1/g'

输出:

{"id":"12","name":"Nick"}
{"id":"13","name"="Bob"}

它会在开始时生成一个额外的\n,在加载或使用tblproperties("skip.header.line.count"="1")时跳过它。

答案 1 :(得分:0)

下载jq并使用最小过滤器:

jq . inputfile