首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何向env文件中的每个值添加双引号

问如何向env文件中的每个值添加双引号
EN

Unix & Linux用户
提问于 2022-03-28 14:05:21
回答 5查看 2.8K关注 0票数 0

我有一个.env文件,需要复制到一个.env.sh文件。该命令导出到.env.sh文件:

代码语言:javascript
复制
scriptPath=$(dirname "$(readlink -f "$0")")
printenv | sed 's/^\(.*\)$/export \1/g' > ${scriptPath}/.env.sh

我的.env文件:

代码语言:javascript
复制
DB_MYSQL_TYPE=mysql
DB_MYSQL_CONNECTOR=pymysql
DB_MYSQL_USER=tuandc
DB_MYSQL_PASS=mypass
DB_MYSQL_HOST=mysql.host
DB_MYSQL_PORT=3306
DB_MYSQL_DBNAME=vietnam

我已经把它导出到.env.sh了:

代码语言:javascript
复制
export DB_MYSQL_TYPE=mysql
export DB_MYSQL_CONNECTOR=pymysql
export DB_MYSQL_USER=tuandc
export DB_MYSQL_PASS=mypass~.(?Tweg
export DB_MYSQL_HOST=mysql.host
export DB_MYSQL_PORT=3306
export DB_MYSQL_DBNAME=vietnam

但我想用双引号来转义DB_MYSQL_PASS中的一些特殊字符:

代码语言:javascript
复制
printenv | sed -e 's/=\(.*\)/="\1/g' -e 's/$/"/g' >> ${scriptPath}/.env.sh
代码语言:javascript
复制
DB_MYSQL_TYPE="mysql"
DB_MYSQL_CONNECTOR="pymysql"
DB_MYSQL_USER="tuandc"
DB_MYSQL_PASS="mypass~.(?Tweg"
DB_MYSQL_HOST="mysql.host"
DB_MYSQL_PORT="3306"
DB_MYSQL_DBNAME="vietnam"

但是,我想结合上面的2个regex使.env.sh文件完成如下所示:

代码语言:javascript
复制
export DB_MYSQL_TYPE="mysql"
export DB_MYSQL_CONNECTOR="pymysql"
export DB_MYSQL_USER="tuandc"
export DB_MYSQL_PASS="mypass~.(?Tweg"
export DB_MYSQL_HOST="mysql.host"
export DB_MYSQL_PORT="3306"
export DB_MYSQL_DBNAME="vietnam"
EN

回答 5

Unix & Linux用户

回答已采纳

发布于 2022-03-28 17:26:53

代码语言:javascript
复制
$ declare -px

declare是一个Bash内置命令,似乎是合适的。此命令在现有变量赋值中转义shell的特殊字符。

票数 2
EN

Unix & Linux用户

发布于 2022-03-28 14:23:02

使用sed轻松地完成了流EDitor:

代码语言:javascript
复制
sed -i.bak -e `s/=/="/;s/$/"/` .env.sh 

这确实是:

  • -i.bak -就地编辑,原始文件保留为.env.sh.bak。
  • s/=/="/ --将"=“改为"="”。
  • ;命令分隔符
  • s/$/"/ -匹配行尾并添加一个引号.

读取man sed

票数 1
EN

Unix & Linux用户

发布于 2022-03-28 18:00:36

在一段时间内完成。使用原始文件(.env):

代码语言:javascript
复制
printenv | sed 's/\(^[^=]*\)=\(.*\)/export \1="\2"/' > "$scriptPath/.env.sh"
票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/697106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档