使用正则表达式在shell脚本中解析JSON

时间:2012-12-17 11:11:32

标签: json shell

我需要使用正则表达式来解析jsonarray。我的json是

"keys": [
      {
        "host": "example.com"       
      },
      {
        "host": "example.net"
      }
    ]

我需要获得两个主机值。

2 个答案:

答案 0 :(得分:10)

当您想要提取文字时,grep是您的朋友:

grep -Po '(?<="host": ")[^"]*' myjsonFile

例如:

kent$  echo '"keys": [
      {
        "host": "example.com"       
      },
      {
        "host": "example.net"
      }
    ]'|grep -Po '(?<="host": ")[^"]*'

example.com
example.net

答案 1 :(得分:1)

以下正则表达式将使用非贪婪的kleene通配符获取主机值:

/"host":\s"(.*?)"/