7 Einträge, 1 Seite |
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
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
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
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
[...] # read files my $data_to_append = &datei_lesen($erste_datei,0); my $full_data = &datei_lesen($andere_datei,1);[...] sub datei_lesen{ # pick parameters my($file,$index) = @_; # 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 = $tracts[$index]; 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
my $line = '20' . sprintf("%05d",$key) . '#' . $key . '#' . join(',', map { join('#', @{$_}) } @{$data->{$key}});
7 Einträge, 1 Seite |