regex - 如何用 awk 替换 .env 文件中的值?
问题描述
我有一个 .env 文件,其中包含以下内容:
{
"Config" : {
"host" : "XX.XXX.XX.XXX" ,
"port" : 3019
}
}
在 bash 脚本中,我有一个变量$myNewIP
。我想用awk
命令用我的变量值替换文件中的 IP。
我努力了
awk '/host/{sub(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})}1 .env
系统提示我有语法错误。我认为这应该可行。命令有什么问题?
解决方案
您应该使用 JSON 感知工具jq
,例如操作 JSON 文件,而不是awk
,sed
等:
jq --arg myNewIP "$myNewIP" '.Config.host = $myNewIP' .env
{
"Config": {
"host": "127.0.0.1",
"port": 3019
}
}
推荐阅读
- c - C中使用strcat的动态字符串连接
- javascript - 在 React 组件内部调用时触发 setTimeout
- ruby-on-rails - Rails 6 Webpacker Uncaught TypeError: $(...).slick is not a function
- javascript - 如何让滚动窗口影响 Scroll Div 内容?
- c# - 代码没有到达它应该到达的代码行
- python-3.x - UFuncTypeError 数据类型 u32
- android - Windows 无法识别 Android 设备
- javascript - 如何检测点击元素的右半部分和左半部分
- ios - Alamofire 5 - 对成员'upload(multipartFormData:to:usingThreshold:method:headers:interceptor:fileManager:)'的模糊引用
- kentico - Kentico Forms - CMSCheckbox 总是呈现一个空标签