Mesclar os registros dependendo das três primeiras colunas comuns e colocar os valores incomuns na última coluna separados por vírgula. Eu tenho um requisito para fazer o seguinte-
Arquivo de entrada :
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
Resultado esperado:
ABC CommonDomain resourcebundle AdminServer,HelpPortalServer_1
HWF CommonDomain javatools AdminServer, HelpPortalServer_1
HWF CommonDomain stringeditor AdminServer,HelpPortalServer_1
Responder1
Você não conseguirá fazer isso facilmente sem recorrer a uma linguagem de script de nível superior. Se eu estivesse fazendo isso, usaria PHP e faria algo como
<?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);
?>