이런 ini 파일이 있어요
[backup]
[persistence]
log_backup_timeout_s = 900
log_mode = normal
이 파일을 다음으로 업데이트하고 싶습니다.
[backup]
data_backup_parameter_file = /usr/sap/SI1/SYS/global/hdb/opt/hdbconfig/param
log_backup_parameter_file = /usr/sap/SI1/SYS/global/hdb/opt/hdbconfig/param
log_backup_using_backint = true
[persistence]
basepath_logbackup = /usr/sap/SI2/HDB02/backup/log
basepath_databackup= /usr/sap/SI2/HDB02/backup/data
enable_auto_log_backup = yes
log_backup_timeout_s = 900
log_mode = normal
답변1
이것은 매우 간단한 모듈을 사용하는 Perl 버전입니다 Config::Tiny
.
#! /usr/bin/perl
use Config::Tiny;
use strict;
my $cfg = Config::Tiny->read( './backup.ini' );
# create a hash containing changes to [backup]
my %B = ('data_backup_parameter_file' => '/usr/sap/SI1/SYS/global/hdb/opt/hdbconfig/param',
'log_backup_parameter_file' => '/usr/sap/SI1/SYS/global/hdb/opt/hdbconfig/param',
'log_backup_using_backint' => 'true',
);
# loop through the hash and add them to the .ini stored in $cfg
foreach my $b (keys %B) {
$cfg->{'backup'}->{$b} = $B{$b};
};
# create a hash containing changes to [persistence]
my %P = ('basepath_logbackup' => '/usr/sap/SI2/HDB02/backup/log',
'basepath_databackup' => '/usr/sap/SI2/HDB02/backup/data',
'enable_auto_log_backup' => 'yes',
);
# loop through the hash and add them to the .ini stored in $cfg
foreach my $p (keys %P) {
$cfg->{'persistence'}->{$p} = $P{$p};
};
$cfg->write( 'new.ini' );
Config::Tiny
Debian(및 그 파생 제품), Fedora, Centos, OpenSuSE 및 기타 배포판용으로 패키지되어 있으므로 적절한 패키지 관리 도구를 사용하여 쉽게 설치할 수 있습니다. 다른 시스템에서는 CPAN을 사용하여 설치하세요.
.ini 파일 작업에 사용할 수 있는 다른 많은 Perl 모듈이 있으며, 일부는 더 많은 기능을 제공하고 다른 일부는 보다 객체 지향적인 접근 방식을 제공합니다. Config::Tiny
해시를 사용하면 복잡한 설정만큼 많은 설정이나 매뉴얼 페이지 읽기가 필요하지 않으므로 이와 같은 간단한 작업에 유용합니다.