我正在编写一个脚本来将变量替换到 Java 属性文件中,格式为 name=value。我有一个源文件, source.env 是这样的:
TEST_ENV_1=test environment variable one
TEST_ENV_2=http://test.environment.com/one
#this is a comment with an equal sign=blah
TEST_ENV_3=/var/log/test/env/2.log
我的脚本会将文件 dest.env 中出现的 TEST_ENV_1 替换为“测试环境变量一”,依此类推。
我正在尝试一次处理一行,并且遇到问题,因为循环从 sed 或 grep 等命令的输出中标记空白而不是整行:
$ for i in `sed '/^ *#/d;s/#.*//' source.env`; do
echo $i
done
TEST_ENV_1=test
environment
variable
one
TEST_ENV_2=http://test.environment.com/one
TEST_ENV_3=/var/log/test/env/2.log
我如何将它们视为线条?我想要做的是在“=”符号上将每一行分开,并根据 source.env 文件使用一堆替换正则表达式制作一个 sed 脚本。