大佬教程收集整理的这篇文章主要介绍了使用 sed 替换 makefile 中 json 中的值,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个 Json 文件
{
"mode": "~test","data": "download","result": "aaa","API_version","12"
}
我有一个makefile
test:
GIT_REV=$(sHell git rev-parse --short head)
sed -e 's/"API_version": [^\]*/"API_version": "$$(GIT_REV)"/' test.Json
找到模式但不能替换值。
我也试过
sed -e 's/"API_version": [^\]*/"API_version": "$(GIT_REV)"/' test.Json
但给出错误:@H_194_5@make: GIT_REV: No such file or directory
但是,在makefile之外我可以运行
sed -e 's/"API_version": [^\]*"/"API_version": "'$GIT_REV'"/g' test.Json
我想知道如何修改 makefile 中的 sed 命令以替换 Json 值。我的目标是通过 make 文件替换 Json 中的值。该值是 git commit ID。
此处 GIT_REV
的设置是配方的一部分,这意味着它正在设置 sHell 变量。 makefile 中配方的每一行都在不同的 sHell 中运行,因此单独在一行上设置 sHell 变量是没有用的。
然后在下一行中,您使用 $$(GIT_REV)
,它不是 make 变量引用(因为您使用 $$
将其从 make 中转义)。
您没有向我们提供有关您真正想做的事情的太多信息,但鉴于此 makefile,这将起作用:
GIT_REV = 3434
test:
sed -e 's/"api_version": [^\]*/"api_version": "$(GIT_REV)"/' test.json
以上是大佬教程为你收集整理的使用 sed 替换 makefile 中 json 中的值全部内容,希望文章能够帮你解决使用 sed 替换 makefile 中 json 中的值所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。