![最初の 3 つの共通列に基づいてレコードをマージし、最後の列にカンマで区切って、一般的ではない値を入力します。 [重複]](https://linux33.com/image/76588/%E6%9C%80%E5%88%9D%E3%81%AE%203%20%E3%81%A4%E3%81%AE%E5%85%B1%E9%80%9A%E5%88%97%E3%81%AB%E5%9F%BA%E3%81%A5%E3%81%84%E3%81%A6%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E3%83%9E%E3%83%BC%E3%82%B8%E3%81%97%E3%80%81%E6%9C%80%E5%BE%8C%E3%81%AE%E5%88%97%E3%81%AB%E3%82%AB%E3%83%B3%E3%83%9E%E3%81%A7%E5%8C%BA%E5%88%87%E3%81%A3%E3%81%A6%E3%80%81%E4%B8%80%E8%88%AC%E7%9A%84%E3%81%A7%E3%81%AF%E3%81%AA%E3%81%84%E5%80%A4%E3%82%92%E5%85%A5%E5%8A%9B%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%20%5B%E9%87%8D%E8%A4%87%5D.png)
最初の3つの共通列に基づいてレコードをマージし、最後の列にカンマで区切られた一般的ではない値を配置します。私は以下を行う必要があります -
入力ファイル:
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
予想出力:
ABC CommonDomain resourcebundle AdminServer,HelpPortalServer_1
HWF CommonDomain javatools AdminServer, HelpPortalServer_1
HWF CommonDomain stringeditor AdminServer,HelpPortalServer_1
答え1
より高いレベルのスクリプト言語を使用しないと、これは簡単にはできません。これを行う場合は、PHPを使用して次のことを行います。
<?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);
?>