объединение двух файлов с использованием perl, сохранение копии исходного файла в другом файле [закрыто]

Мне нужны такие файлы, как A.ini и B.ini, я хочу объединить оба файла в A.ini

examples of files:
A.ini::

a=123
b=xyx
c=434

B.ini contains:
a=abc
m=shank
n=paul

my output in files A.ini should be like

a=123abc
b=xyx
c=434
m=shank
n=paul

Я хочу, чтобы это слияние было выполнено на языке Perl, и я хочу сохранить копию старого файла A.ini в другом месте, чтобы использовать старую копию

-1
задан 16 April 2012 в 13:17
2 ответа
#!/usr/bin/perl

use strict;
use warnings;
use File::Copy;

my $fileA = "a.ini";
my $fileB = "b.ini";
my ($name, $value, %hash);

open(my $fh, '<', $fileA) or die $!;
while(<$fh>)
{
    chomp $_;
    ($name, $value) =  split(/=/, $_);
    $hash{$name} = $value;
}
close($fh);

open($fh, '<', $fileB) or die $!;
while(<$fh>)
{
    chomp $_;
    ($name, $value) =  split(/=/, $_);
    if (exists $hash{$name})
    {
        $hash{$name} = $hash{$name} . $value;
    }
    else
    {
        $hash{$name} = $value;
    }
}
close($fh);

print "Renaming a.ini to old_a.ini\n";
move($fileA, "old_".$fileA) or die $!;

print "Result:\n\n";
open($fh, '>>', $fileA) or die $!;
foreach my $k (sort {$a cmp $b} keys %hash)
{
    print $fh "$k=$hash{$k}\n";
    print "$k: $hash{$k}\n";
}
close($fh);
3
ответ дан 5 December 2019 в 19:18
#!/usr/bin/perl

use List::MoreUtils;


open my $f1 , '<' , $file1 || or die "...";
my @file1 = <$f1>;
close $f1;

open my $f2 , '<' , $file2 || or die "...";
my @file2 = <$f2>;
close $f2;

my @zip = zip @file1, @file2;

open my $a1 , ">" , $answrfile || die

 "...";
map { print $a1 $_ } @zip;
close $al;
0
ответ дан 5 December 2019 в 19:18

Теги

Похожие вопросы