Ich bin auf der Suche nach einem einzigen csv aus vielen csvs in einem Verzeichnis zu erstellen. Ich weiß, dass dies viele Male abgedeckt wurde, aber ich habe eine leichte Wendung. Dinge, die ich tun möchte:Erstellen Sie einzelne CSV aus mehreren CSVs in einem Verzeichnis 1. CSV kopieren Sie beide Spalten nach dem csv nur die zweite Spalte
- Finden Sie die größte Datei.
- Mit der größten Datei - verwenden Sie das als Basis. Die erste Spalte in der größten Datei wird der Primärschlüssel sein, den ich brauche, um den Rest der Dateien zusammenzuführen.
- Vergleichen Sie jede Datei im Verzeichnis mit dem Primärschlüssel aus der ersten CSV und fügen Sie die zweite Spalte jedes CSV zum größten.
Damit wird gesagt i mit der folgenden arbeite:
ich diesen Link eine Spalte von einer csv zum anderen zu nehmen gefunden.
https://askubuntu.com/questions/553219/add-column-from-one-csv-to-another-csv-file
Ich kann so etwas wie dies nutzen, um die Spalte von einem zum anderen hinzuzufügen.
paste -d, file2 <(cut -d, -f3- file1)
Die folgende PHP wird mir die Dateiliste für ein Verzeichnis erhalten jetzt zu kombinieren/fusionieren die CSVs versuchen PHP zu nutzen.
$dir= $Folder.'/Stats/Latency/'; // directory name
$ar=scandir($dir);
$box=$_POST['box']; // Receive the file list from form
// Looping through the list of selected files ///
while (list ($key,$val) = @each ($box)) {
$path=$dir ."/".$val;
$dest = $Folder."/Report/Latency/".$val;
if(copy($path, $dest)); //echo "Copy Complete file ";
echo "$val,";
}
echo "<hr>";
Dies ist, wo ich die CSV unten fusionieren müssen: Ich debattieren die Shell exec-Befehle zu verwenden, aber das scheint sehr arbeitsintensiv.
$reportFiles = $Folder."/Report/Latency/";
foreach(glob($reportFiles."*.csv") as $file)
{
shell_exec("touch "$reportFiles."latencyReport.csv");
}
Da es bezieht sich auf die Daten in der CSV-Dateien:
CSV1:
date,vpool06
2016-03-28 12:00:00,0.000
2016-03-28 12:01:00,0.000
2016-03-28 12:02:00,0.000
2016-03-28 12:03:00,0.000
2016-03-28 12:04:00,0.000
2016-03-28 12:05:00,0.000
2016-03-28 12:06:00,0.000
2016-03-28 12:07:00,0.000
2016-03-28 12:08:00,0.000
2016-03-28 12:09:00,0.000
2016-03-28 12:10:00,0.000
2016-03-28 12:11:00,0.000
2016-03-28 12:12:00,0.000
2016-03-28 12:13:00,0.000
2016-03-28 12:14:00,0.000
2016-03-28 12:15:00,0.000
2016-03-28 12:16:00,0.000
2016-03-28 12:17:00,0.000
2016-03-28 12:18:00,0.000
2016-03-28 12:19:00,0.000
CSV2:
date,vpool02
2016-03-28 12:00:00,0.000
2016-03-28 12:01:00,0.000
2016-03-28 12:02:00,0.000
2016-03-28 12:04:00,0.000
2016-03-28 12:05:00,0.000
2016-03-28 12:06:00,0.000
2016-03-28 12:07:00,0.000
2016-03-28 12:08:00,0.000
2016-03-28 12:09:00,0.000
2016-03-28 12:10:00,0.000
2016-03-28 12:11:00,0.000
2016-03-28 12:12:00,0.000
2016-03-28 12:13:00,0.000
2016-03-28 12:14:00,0.000
CSV3:
date,vpool03
2016-03-28 12:00:00,0.000
2016-03-28 12:01:00,0.000
2016-03-28 12:02:00,0.000
2016-03-28 12:04:00,0.000
2016-03-28 12:05:00,0.000
Eingebunden CSV:
date,vpool06,vpool02,vpool03
2016-03-28 12:00:00,0.000,0.000,0.000
2016-03-28 12:01:00,0.000,0.000,0.000
2016-03-28 12:02:00,0.000,0.000,0.000
2016-03-28 12:03:00,0.000,,0.000
2016-03-28 12:04:00,0.000,0.000,0.000
2016-03-28 12:05:00,0.000,0.000,0.000
2016-03-28 12:06:00,0.000,0.000,
2016-03-28 12:07:00,0.000,0.000,
2016-03-28 12:08:00,0.000,0.000,
2016-03-28 12:09:00,0.000,0.000,
2016-03-28 12:10:00,0.000,0.000,
2016-03-28 12:11:00,0.000,0.000,
2016-03-28 12:12:00,0.000,0.000,
2016-03-28 12:13:00,0.000,0.000,
2016-03-28 12:14:00,0.000,0.000,
2016-03-28 12:15:00,0.000,,
2016-03-28 12:16:00,0.000,,
2016-03-28 12:17:00,0.000,,
2016-03-28 12:18:00,0.000,,
2016-03-28 12:19:00,0.000,,
Im Idealfall ist mir egal, ob es eine „Null“ Wert an dieser Stelle ist, weil es einfach nicht in der Grafik angezeigt. Das bedeutet, dass der Server zu der Zeit ausgeschaltet war.
Muss in den Leerstellen, in denen keine Daten vorhanden sind, null sein.
Update: Beispiel.
date,vpool06,7NA_01,7NA_02,bd01,bd02,vpool01,vpool02,vpool03,vpool04,vpool07
2016-03-28 12:00:00,1.000,null,10.00,02.00,20.00,0.00,0.00,0.00,0.00,0.000
2016-03-28 12:01:00,0.000,11.00,110.00,null,11.00,0.00,0.00,0.00,0.00,0.000
2016-03-28 12:02:00,0.000,null,0.00,2.00,100,0.00,0.00,0.00,0.00,0.000
2016-03-28 12:03:00,0.000,0.00,0.00,02.00,10.00,0.00,0.000,0.00,0.00,0.000
'2016.03.28 12: 03: 00,0.000, ist 0.000' nicht im Einklang mit dem Eingang – karakfa
"größte Datei" Define-Dateien. Die meisten Zeilen, die meisten Spalten, die meisten Bytes, noch etwas? Stellen Sie außerdem klar, ob Sie eine PHP-Lösung oder eine AWK-Lösung oder etwas anderes benötigen. –
Most Rows - dachte nie daran ... große Frage - wenn ich die meisten Zeilen machen könnte, wäre das noch besser. PHP wäre die beste Option - weil ich ein Select-Skript erstelle, das die Dateien in dieses Verzeichnis verschiebt - und danach die Dateien kombinieren und zusammenführen kann. – Jared