如何与grep匹配[1]?

时间:2016-03-08 18:52:09

标签: grep

到目前为止,这是我的代码......

cat config.json | grep -Po '"server"\s*:\s*"([^"]*)"'

但我只想要(括号内)的部分。我不能使用后视,因为它是可变长度的。我有什么选择?

示例输入1:

{"debug":false,"server":"dev-dutch","env":"dev"}

示例输入2:

{
  "debug": false,
  "server": "dev-dutch",
  "env": "dev"
}

两者的期望输出:

dev-dutch

我知道可能有更安全/更好的方法来解析JSON,但我想在shell中执行此操作,它应该在Ubuntu和FreeBSD上运行而无需安装任何外部程序,所以我可以使用{{1 hack。

1 个答案:

答案 0 :(得分:1)

使用GNU grep:

grep -Po '"server": *"\K[^"]+' file