gpt4 book ai didi

linux - 遍历文件并解析占位符变量

转载 作者:太空宇宙 更新时间:2023-11-04 11:17:24 25 4
gpt4 key购买 nike

几天来我一直在研究这个问题,但我完全被困住了。我将占位符变量放在我的文件中,格式如下:*$PLACEHOLDER_VAR*,原始变量为 $VAR

原始config.conf

TEST="$PLACEHOLDER_USERNAME"
TEST2="$PLACEHOLDER_PASSWORD"

我想要做的是有一个包含已定义变量的 deploy.sh,并且可以运行一个命令,该命令将用已定义变量替换任何占位符变量,像这样保留它:

新的config.conf

TEST="Tom"
TEST2="abc123"

我的 deploy.sh 需要一个命令,它适用于任何占位符变量。

$PLACEHOLDER_USERNAME -> $USERNAME -> 汤姆

一个例子(但不是正确的)deploy.sh 以用户名为例

USERNAME="Tom"
PASSWORD="abc123"
FILE="config.conf"
sed -i s/STRING_TO_REPLACE/STRING_TO_REPLACE_IT/g $FILE

谁能帮我完成这个脚本?

最佳答案

你可以尝试这样的事情:

USERNAME="Tom"
PASSWORD="abc123"
FILE="config.conf"
sed -i "s/\$PLACEHOLDER_USERNAME/$USERNAME/g" $FILE
sed -i "s/\$PLACEHOLDER_PASSWORD/$PASSWORD/g" $FILE
# perl -p -i -e "s/\$PLACEHOLDER_PASSWORD/$PASSWORD/g" $FILE

我还提供了一个 perl 替代 sed 的示例,因为我不确定上面的 sed 是否可以解决问题。

尝试 #2

这应该可以解决问题。

USERNAME="Tom"
PASSWORD="abc123"
LIST="USERNAME PASSWORD"
FILE="config.conf"
for item in $LIST; do
eval "sed -i \"s/\$PLACEHOLDER_$item/\$$item/g\" $FILE"
done

关于linux - 遍历文件并解析占位符变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20241748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com