使用awk/sed解析类似JSON的文件的最佳方法

Rev*_*ell 1 bash awk parsing json sed

我有一个文件,其内容如下:

{application_name, [
    {settings, [
        {generic_1, [
            {key_1, "value"},
            {key_2, 1},
            {key_3, [something, other]}
        ]},
        {generic_2, [
            {key_1, "value"},
            {key_3, [something, other]}
        ]},
        {{generic_2, specific_1}, [
            {key_3, [entirely, different]}
        ]},
    ]}
]}
Run Code Online (Sandbox Code Playgroud)

现在我正在寻找一种方法来使用awk或sed(或其他东西)来解析它.我需要的是能够指定一个键,然后返回"blockname".

如果我想要key_3返回的所有设置如下:

generic_1 [something, other]
generic_2 [something, other]
specific_1 [entirely, different]
Run Code Online (Sandbox Code Playgroud)

什么是最好的方法来解决这个问题?

Eta*_*ner 8

如何使用sed或awk解析JSON数据的最佳解决方案是...不要用sed或awk这样做.它们不是为它而设计的.

使用了解JSON的工具

  1. perl的
  2. 蟒蛇
  3. 红宝石
  4. JavaScript的
  5. JQ
  6. 几乎任何事情

使用任何类似sed或类似的东西awk将是脆弱的(充其量).