我需要用config.json文件中定义的1-N个特定值替换html文件index.html中的占位符(__placeholder__
)。
用新内容替换index.html中的占位符:echo“${html//__placeholder__/$replace}”>; index.html
从json(不工作)获取值:replace=$(sed's/.*“host”:“\(.*\)”/\1/g;d;t'config.json)
这不是一个好方法,当前无法返回所需的值
因此,我知道如何替换html文件中的值,但我不知道如何在此之前将所需的值获取到变量中。 我已经用sed或perl尝试过了,但是sed的问题是它不是跨平台兼容的,而这是它所需要的。
{
"xxxx": {
"description": "xxxxx",
"value": {
"to": [
"xxxxxx"
]
}
},
"xxxx": {
"description": "xxx",
"value": "xxxxxx"
},
"API": {
"description": "xxxxxxxxx",
"value": {
"default": {
"host": "VALUE I WANT"
},
"auth": {
"host": "VALUE I WANT"
}
}
},
}
default和auth只是一些可能的值它可能是1-N个主机。
最后,我想要一个变量,所有主机都是字符串:host1 host2 host3
信息:我们不能使用任何第三方工具,不是通常存在于系统和; index.html文件没有任何意义,我们只是替换占位符值。
我很感激你的帮助
我们不能使用系统中通常不存在的任何第三方工具
考虑到我们不知道您使用的是什么“系统”,这不是一个非常有用的限制告诉我们。
Perl有几个可用的JSON解析器,自Perl5.14(2011年5月发布)以来,其中一个(JSON::PP)已经成为标准Perl发行版的一部分。 因此,如果您有一个Perl版本是在过去九年中发布的,那么将JSON文件读入变量的任务是微不足道的。
#!/user/bin/perl
use strict;
use warnings;
use feature 'say';
use JSON::PP;
use Data::Dumper;
open my $json_fh, '<', 'config.json' or die $!;
my $json = do { local $/; <$json_fh> };
my $config = JSON::PP->new->decode($json);
# Now you have your JSON in a Perl data structure
say Dumper $config;
# You can also access individual values
say $config->{xxxx}{description};
say $config->{API}{value}{default}{host};