-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmerge-files.p6
44 lines (34 loc) · 1.13 KB
/
merge-files.p6
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
#!/usr/bin/env raku
use Text::CSV;
my %doge-data = csv(in => "resources/doge-surnames-groups.csv", :key( "Family" ));
my %positions-data = csv(in => "resources/family-positions.csv",
:key( "Family name" ));
my %dogi-number-data = csv(in => "resources/doge-surnames.csv",
:key( "Family" ));
my %merged-data;
for %positions-data.keys -> $family {
%merged-data{$family} = {
Positions => %positions-data{$family}<Positions>
};
if %dogi-number-data{$family} {
%merged-data{$family}<Dogi> = %dogi-number-data{$family}<Count>;
}
if %doge-data{$family} {
for ["Nuovissime","Nuove","Extinct pre-serrata","Vecchie",
"Apostoliche","Evangeliche"] -> $type {
%merged-data{$family}<Type> = $type if %doge-data{$family}{$type};
}
}
}
my @aoa;
@aoa.push: ["Family","Doges","Positions", "Type"];
for %merged-data.keys -> $family {
@aoa.push: [
$family,
%merged-data{$family}<Dogi> || 0,
%merged-data{$family}<Positions>,
%merged-data{$family}<Type> || ""
];
}
csv( out => "resources/family-data.csv",
in => @aoa );