我有config_file.txt具有下一个结构
host ='myserver'
login = 'vasya'
password = 'pupkin'
和code.scala具有下一个结构
var_host = '***HOST***'
var_login = '***LOGIN***'
var_password = '***PASS***'
两个文件都在同一目录中。 我需要在配置文件中使用适当的行,并在代码文件中将其替换为适当的行 我在看grep函数,但没有。知道我是否有办法做我需要的事情,或者是否有其他功能可以用来完成这项工作?
谢谢!
答案 0 :(得分:0)
这是一个快速的小Perl脚本来完成它:
#!/usr/bin/perl -pi
use warnings;
use strict;
use Getopt::Long;
our %vars;
BEGIN {
my $config_file = "config_file.txt";
GetOptions("config=s" => \$config_file) or die "Invalid argument\n";
open my $config, "<", $config_file or die "Unable to open $config_file\n";
while (<$config>) {
if (/^(\w+)\s*=\s*('.*')/) {
$vars{$1} = $2;
}
}
close $config;
}
if (/^var_(\w+)\s*=/) {
$_ = "var_$1 = $vars{$1}\n" if exists $vars{$1}
}
像这样运行:
$ perl set_vars.pl code.scala
并使用
将配置文件的名称设置为“ config_file.txt”以外的名称$ perl set_vars.pl --config=foo.txt code.scala