Datensätze abhängig von den ersten drei gemeinsamen Spalten zusammenführen und die Werte, die nicht vorkommen, durch Kommas getrennt in die letzte Spalte setzen

Datensätze abhängig von den ersten drei gemeinsamen Spalten zusammenführen und die Werte, die nicht vorkommen, durch Kommas getrennt in die letzte Spalte setzen

Datensätze abhängig von den ersten drei gemeinsamen Spalten zusammenführen und die Werte, die nicht vorkommen, in der letzten Spalte durch Komma getrennt platzieren. Ich muss Folgendes tun:

Eingabedatei :

HWF CommonDomain  javatools       AdminServer
ABC CommonDomain  resourcebundle  AdminServer
HWF CommonDomain  stringeditor    AdminServer
ABC CommonDomain  resourcebundle  HelpPortalServer_1
HWF CommonDomain  stringeditor    HelpPortalServer_1 
HWF CommonDomain  javatools       HelpPortalServer_1

Erwartete Ausgabe :

ABC CommonDomain resourcebundle   AdminServer,HelpPortalServer_1
HWF CommonDomain javatools       AdminServer, HelpPortalServer_1 
HWF CommonDomain stringeditor   AdminServer,HelpPortalServer_1 

Antwort1

Sie werden dies nicht einfach tun können, ohne auf eine Skriptsprache auf höherer Ebene zurückzugreifen. Wenn ich dies tun würde, würde ich PHP verwenden und etwas wie

<?php
$infile = fopen("/path/to/input/file.txt", "r");
$outfile = fopen("/path/to/output/file.txt", "w");

$data = array();

while (($buffer = fgets($infile, 4096)) !== false) {
    $parts = explode(' ', $buffer);
    for($i=1; $i<count($parts); $i++) {
        $data[$parts[0]][$parts[$i]=1;
    }
}


foreach($data as $key=>$values) {
    $buffer = "";
    $buffer .= $key.' ';
    foreach(array_keys($values) as $v) {
        buffer .= $v.' ';
    }
    $buffer .= "\n";
    fwrite($outfile, $buffer);
}
fclose($infile);
fclose($outfile);
?>

verwandte Informationen