使用AWK将带有分隔符的字符串转换为Json中的数组

时间:2017-01-27 01:59:58

标签: arrays json awk gawk

我有以下样式格式json,我想将带有分隔符逗号的双引号中的值转换为元素数组。

我想转换的json字段是巨大的Json文件的一部分。

所以我需要找到字段

转换

Before
{"name": "john, jane, gordon, matthew"} 

               to 
After    
{"field": ["john","jane","gordon", "matthew"]}

3 个答案:

答案 0 :(得分:1)

如果你的Json文件在一行中有条目,那么这个AWK程序适用于你的例子:

{
    sub(": *",": [")
    sub("}","]}")
    gsub(", *","\",\"")
    print
}

如果您的数据在一行中,请将sub替换为gsub

答案 1 :(得分:0)

如果所有行都具有相似的格式,请尝试使用

 awk '{print gensub(/\"/,"[","3")}' | awk '{print gensub(/\"}$/,"]}","")}' filename

答案 2 :(得分:0)

我认为sed在这种情况下也很好

A   B   C
1   1   3
2   1   3
3   0   0
4   0   0
5   0   0
1   1   3
2   1   3
3   2   3
4   2   3
5   0   0