Ich habe mehrere separate CSV-Dateien, die nur eine einspaltige Liste von E-Mail-Adressen sind, wobei jede Datei ein „Tag“ darstellt, das dieser E-Mail zugeordnet ist. Ich möchte sie in einer CSV-Datei zusammenführen, sodass alle E-Mail-Adressen in allen Dateien in der ersten Spalte aufgeführt sind und alle anderen Spalten die Dateinamen und ein Wahr/Falsch oder 1/0 sind, wenn sich die E-Mail darin befindet Datei.
Welche Software hätte diese Funktion und wie würde ich sie implementieren? Ich besitze die neueste Version von Excel, wenn das geht.
Perl ist dafür großartig. Sie können auch einen einfachen Bash-Einzeiler erstellen. Dies sollte aber funktionieren.
#!/usr/bin/env perl
use strict;
use warnings;
use Text::CSV_XS;
my $csv = Text::CSV_XS->new;
my %db, @tags;
while (my $email = <<>>) {
chomp $email;
push @tags, $ARGV;
$db{$email}{$ARGV} = 1;
}
# Header
$csv->say(*STDOUT, ["Email", map $_, @tags]);
foreach my $email (keys %db) {
$csv->say(*STDOUT, [$email, map $db{$email}{$_}//0, @tags]);
}
Wenn Sie nicht haben Text::CSV_XS
, können Sie es mit installieren
cpan Text::CSV_XS;
Speichern Sie dies in einer Datei, runme
, chmod u+x runme
, und dann./runme *
Letztendlich scheint es, basierend auf dem Erfahrungsstand, den ich hatte, zwei Möglichkeiten zu geben, damit umzugehen, die ich hier teilen kann, falls sich jemand in einer ähnlichen Situation befindet.
Erich S
Benny Lewis
Erich S
Benny Lewis
Evan Caroll