【发布时间】:2017-08-07 12:35:16
【问题描述】:
我正在尝试使用带有 sed 的 -i 标志获取 JSON 密钥并更改其在文件中的属性。问题是,我无法正确使用此正则表达式。它适用于简单的替换案例,但我无法使用这个正则表达式让它工作。为简单起见,我只是尝试了一个简单的回显,而不是将其保存到文件中。想法?
x=0.0.179
echo "version: 0.0.178" | sed 's/^[ ]*\"version\"[ ]*:[ ]*\"\([0-9]+\.[0-9]+\.[0-9]+\)\".*$/\$x/'
0.0.178
【问题讨论】:
-
你的 JSON 是什么,你期望什么,你实际得到什么?
-
如果您尝试编辑 JSON,可以使用相应的工具(例如
jq)。使用 sed 的方法可能会在某个时候中断。 -
@brian 我认为期望在我的问题中得到了很好的解释。我期望将 0.0.178 替换为 0.0.179。我只限于sed,所以我不能使用jq。有没有办法用 sed 做到这一点?
-
不安装jq有什么原因吗?你的服务器没有安装 Python 吗?
标签: json string bash sed replace