Thread Script-Umstellung ? (6 answers)
Opened by Paule1 at 2008-02-01 09:11

Paule1
 2008-02-01 09:11
#105432 #105432
User since
2007-11-27
4 Artikel
BenutzerIn
[default_avatar]
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 ...


Code (perl): (dl )
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
#!/usr/bin/perl -d
#
use strict;
use warnings 'all';

# initialize filenames
my $erste_datei = 'addr_allowed.lis';
my $andere_datei = 'postfix.lis';

# read files
my $data_to_append = &datei_lesen($erste_datei);
my $full_data = &datei_lesen($andere_datei);

# append data
foreach my$key (keys %{$data_to_append})
{
   # check whether we can append the data
   next if !exists($full_data->{$key});

   # append data
   push(@{$full_data->{$key}->[0]}, @{shift(@{$data_to_append->{$key}})});
   push(@{$full_data->{$key}}, @{$data_to_append->{$key}});
}

# output
&datei_schreiben($full_data, $andere_datei);

# NAME:        datei_schreiben()
# USE:        Datei anhand des musters in eine Datei schreiben
# PARAMETERS:    1. Data
#        2. Filename
# RETURNS:    void
sub datei_schreiben($$)
{
   # pick parameters
   my($data, $file) = @_;

   # open file
   open(my$fhOUT, '>', $file)
       or die "open failed: $!";

       # iterate through the data
       foreach my$key (keys %{$data})
       {
           # create line

            my $line = $key . '#' . join(',', map { join('#', @{$_}) } @{$data->{$key}});

           # write out line
           print $fhOUT "$line\n";
       }

   # close file
   close($fhOUT)
       or die "close failed: $!";
} # datei_schreiben

# NAME:        datei_lesen()
# USE:        Datei anhand des musters in eine komplexe Datenstruktur einlesen.
# PARAMETERS:    Filename
# RETURNS:    Hash reference
sub datei_lesen($)
{
   # pick parameters
   my($file) = @_;

   # open file
   open(my$fhIN, '<', $file)
       or die "open failed: $!";

   # read data
   my %data;
   while (my$line=<$fhIN>)
   {
       chomp($line);

       # split line
       my @tracts = split('#', $line);

       # key equals the first tract
       my $key = shift @tracts;
       my $val = [@tracts];

       # push data
       $data{$key} = [] unless exists $data{$key};
        push(@{$data{$key}}, $val);
   }

   # close file
   close($fhIN);

   # return data reference
   return \%data;
} # datei_lesen


Listing "addr_allowed.lis"
Code: (dl )
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"

Code: (dl )
1
2
3
4
5
6
7
8
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

View full thread Script-Umstellung ?