用bash替换环境变量
我现在有这种类型的文件,我想用bash替换所有变量(用bash替换环境变量,bash,shell,Bash,Shell,我现在有这种类型的文件,我想用bash替换所有变量(APIKEY,AUTHDOMAIN,…),请提供一些通用解决方案 export const environment = { production: true, firebase: { apiKey: "APIKEY", authDomain: "AUTHDOMAIN", databaseURL: "DATABASEURL", projectId: "PROJECTID", storageBucke
APIKEY
,AUTHDOMAIN
,…),请提供一些通用解决方案
export const environment = {
production: true,
firebase: {
apiKey: "APIKEY",
authDomain: "AUTHDOMAIN",
databaseURL: "DATABASEURL",
projectId: "PROJECTID",
storageBucket: "STORAGEBUCKET",
messagingSenderId: "MESSAGINGSENDERID"
},
functionURL:"FUNCTIONSURL",
};
已用于文件中的每个变量 要在每个变量前面加上字符串
$Master
,请使用:
sed -i 's/($APIKEY)/('"$Master_APIKEY"')/g'
此命令的工作方式如下:
:匹配所有内容,直到字符串\(.*:)
并捕获到组1中:“
:匹配最后一个\(.*)”
之前的所有内容,并在组2中捕获“
:替换为组1的内容,然后替换为组2的内容\1$Master\u2“
sed 's/\(.*: "\)\(.*\)"/\1$Master_\2"/g' inputfile
您可以包含
-i.bak
标志以替换原始文件并创建备份文件。要使用字符串$Master\uuuz>预加每个变量,请使用:
sed -i 's/($APIKEY)/('"$Master_APIKEY"')/g'
此命令的工作方式如下:
\(.*:)
:匹配所有内容,直到字符串:“
并捕获到组1中
\(.*)”
:匹配最后一个“
之前的所有内容,并在组2中捕获
\1$Master\u2“
:替换为组1的内容,然后替换为组2的内容
输出:
sed 's/\(.*: "\)\(.*\)"/\1$Master_\2"/g' inputfile
您可以包括-i.bak
标志来替换原始文件并创建备份文件。以下是您尝试实现的示例:
另外,您不需要使用cat和all,您可以直接在文件上使用sed-i,这只是为了演示一行代码,其中我们在给定模式上插入变量:
export const environment = {
production: true,
firebase: {
apiKey: "$Master_APIKEY",
authDomain: "$Master_AUTHDOMAIN",
databaseURL: "$Master_DATABASEURL",
projectId: "$Master_PROJECTID",
storageBucket: "$Master_STORAGEBUCKET",
messagingSenderId: "$Master_MESSAGINGSENDERID"
},
functionURL:"FUNCTIONSURL",
};
您提供的输入文件的输出:
a=REPLACEMENT ;cat inputfile | sed "s/\"\(.*\)\"/\""$a"_\1\"/g"
下面是一个您试图实现的示例:
另外,您不需要使用cat和all,您可以直接在文件上使用sed-i,这只是为了演示一行代码,其中我们在给定模式上插入变量:
export const environment = {
production: true,
firebase: {
apiKey: "$Master_APIKEY",
authDomain: "$Master_AUTHDOMAIN",
databaseURL: "$Master_DATABASEURL",
projectId: "$Master_PROJECTID",
storageBucket: "$Master_STORAGEBUCKET",
messagingSenderId: "$Master_MESSAGINGSENDERID"
},
functionURL:"FUNCTIONSURL",
};
您提供的输入文件的输出:
a=REPLACEMENT ;cat inputfile | sed "s/\"\(.*\)\"/\""$a"_\1\"/g"
不清楚,你能说得更详细些吗?你想编辑哪个文件?变量值应该从哪里获取?在这个问题上python是如何相关的?看起来像是javascriptme@RavinderSingh13文件已给定,变量值应为anything@soheshdoshi如果您确切地知道要替换的是什么,那么为什么不直接执行sed“s/$APIKEY/$Master\\u$APIKEY”
这使用sed
,这与bash
无关。您是否需要bash
code来执行此操作?不清楚,请您提供更多详细信息?你想编辑哪个文件?变量值应该从哪里获取?在这个问题上python是如何相关的?看起来像是javascriptme@RavinderSingh13文件已给定,变量值应为anything@soheshdoshi如果您确切地知道要替换的是什么,那么为什么不直接执行sed“s/$APIKEY/$Master\\u$APIKEY”
这使用sed
,这与bash
无关。您是否需要bash
code来执行此操作?它会给出类似apikey的输出:“REPLACEMENT\u xyzv”时间,用于用环境替换占位符variable@sheshdoshi你能分享更多关于变量和你的实现的细节吗?它的输出像apikey:“REPLACEMENT_xyzv”用环境替换占位符的时间variable@sheshdoshi你能分享更多关于变量和你的实现的细节吗?FUNCTIONSURL呢?如果你也想替换FUNCTIONSURL
,那么就用\(.*:“\)
替换\(.*******”\)
,以便匹配冒号后的零个或多个空格。FUNCTIONSURL呢?如果要同时替换FUNCTIONSURL
,请将正则表达式中的\(.*:\)
替换为\(.*:*)
,以便匹配冒号后的零个或多个空格。