Folgendes Szenario
ich habe eine Datei "postfix.lis"
An diese Datei soll per Per-Script die Adressen aus der Datei "addr_allowed.lis" angefügt werden.
Und zwar immer, wenn die User-ID passt.
Das ging die ganze Zeit, denn die Datei "postfix.lis" war in diesem Format
1008#Oltrogge#Oltrogge##Oltrogge######smtp-test#DE#0
Jetzt wurde das Format umgestellt und sieht nun so aus (es wurde eine zusätzliche ID vorne angestellt)
201008#1008#Oltrogge#Oltrogge##Oltrogge######smtp-test#DE#0
Natürlich laüf das Script "append-mailadr-to-lis.pl" nun nicht mehr, was vor der Umstellung einwandfrei funktionierte.
Wäre super, wenn mir dabei jemand unter die Arme greifen könnte, bin mit meiner Weissheit am Ende ...
Ich habe unten alle Listings mal angehängt, vielleicht weiss jemand weiter ...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
use strict;
use warnings 'all';
my $erste_datei = 'addr_allowed.lis';
my $andere_datei = 'postfix.lis';
my $data_to_append = &datei_lesen($erste_datei);
my $full_data = &datei_lesen($andere_datei);
foreach my$key (keys %{$data_to_append})
{
next if !exists($full_data->{$key});
push(@{$full_data->{$key}->[0]}, @{shift(@{$data_to_append->{$key}})});
push(@{$full_data->{$key}}, @{$data_to_append->{$key}});
}
&datei_schreiben($full_data, $andere_datei);
sub datei_schreiben($$)
{
my($data, $file) = @_;
open(my$fhOUT, '>', $file)
or die "open failed: $!";
foreach my$key (keys %{$data})
{
my $line = $key . '#' . join(',', map { join('#', @{$_}) } @{$data->{$key}});
print $fhOUT "$line\n";
}
close($fhOUT)
or die "close failed: $!";
}
sub datei_lesen($)
{
my($file) = @_;
open(my$fhIN, '<', $file)
or die "open failed: $!";
my %data;
while (my$line=<$fhIN>)
{
chomp($line);
my @tracts = split('#', $line);
my $key = shift @tracts;
my $val = [@tracts];
$data{$key} = [] unless exists $data{$key};
push(@{$data{$key}}, $val);
}
close($fhIN);
return \%data;
}
Listing "addr_allowed.lis"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
1008#willi@hoedel1.de
1008#micsdsdsd@t-online.de
1033#ssssht@gmx.de
1033#dddcht@web.de
2552#chrisdsdsdstia@dweb.de
46998#edi@ne.com
1025#joesdssddt@web.de
1025#supsdsddport@delock.de
1025#hotlisdsne@rrrrelster.de
1025#im.sddsdt@web.de
1025#d.sdsdsd@yahoo.de
1025#j-sdda@web.de
1025#peter@dddde.com
1025#Kundenssdsdervice@sdsoe.de
1025#Michael.sdsdS@freenet.de
1025#ddddeams@libero.it
1025#cassddssmo@online.de
1025#maths5@web.de
1025#j-sdsdsd@t-online.de
Listing "postfix.lis"
201008#1008#Oltrogge#Oltrogge##Oltrogge######smtp-test#DE#0
201033#1033#Diamant-Quelle#Diamant-Quelle##Klee+Jungblut-GmbH######smtp-test#DE#0
2014396#14396#RFN388#RFN388##Buddelei-Mode-GmbH-Bloherfelder-Str-276-26129-Oldenburg######smtp-test#DE#0 2007222#7222#BRUEGGEN#BRUEGGEN##BRUEGGEN-MUEHLWERKE######smtp-test#DE#0
2024108#24108#MONTAGEWAGEN-576#MONTAGEWAGEN-576##Kueppersbusch/Gelsenk#KUNDENDIENST#####smtp-test#DE#0
2006074#6074#EHSNL111#EHSNL111##Milchhof-Eiskrem######smtp-test#DE#0
2047557#47557#CREDIT-AGRICOLE-INDOSUEZ-ABS#CREDIT-AGRICOLE-INDOSUEZ-ABS##CREDIT-AGRICOLE-INDOSUEZ######smtp-test#DE#02002552#2552#guj003#guj003##Gruner+Jahr-Hamburg######smtp-test#DE#0
2046998#46998#Bockelmann#Bockelmann##Spedition-Bockelmann######smtp-test#DE#0
2001025#1025#Joerg voll#voll#Joerg#DTAG######smtp-test#DE#0