到目前为止,这是我的代码......
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。
答案 0 :(得分:1)
使用GNU grep:
grep -Po '"server": *"\K[^"]+' file