![처음 세 개의 공통 열을 기준으로 레코드를 병합하고 마지막 열에 쉼표로 구분하여 일반적이지 않은 값을 입력합니다. [중복]](https://linux55.com/image/76588/%EC%B2%98%EC%9D%8C%20%EC%84%B8%20%EA%B0%9C%EC%9D%98%20%EA%B3%B5%ED%86%B5%20%EC%97%B4%EC%9D%84%20%EA%B8%B0%EC%A4%80%EC%9C%BC%EB%A1%9C%20%EB%A0%88%EC%BD%94%EB%93%9C%EB%A5%BC%20%EB%B3%91%ED%95%A9%ED%95%98%EA%B3%A0%20%EB%A7%88%EC%A7%80%EB%A7%89%20%EC%97%B4%EC%97%90%20%EC%89%BC%ED%91%9C%EB%A1%9C%20%EA%B5%AC%EB%B6%84%ED%95%98%EC%97%AC%20%EC%9D%BC%EB%B0%98%EC%A0%81%EC%9D%B4%EC%A7%80%20%EC%95%8A%EC%9D%80%20%EA%B0%92%EC%9D%84%20%EC%9E%85%EB%A0%A5%ED%95%A9%EB%8B%88%EB%8B%A4.%20%5B%EC%A4%91%EB%B3%B5%5D.png)
처음 세 개의 공통 열을 기준으로 레코드를 병합하고 마지막 열에 쉼표로 구분된 일반적이지 않은 값을 배치합니다. 나는 다음을 수행해야한다는 요구 사항이 있습니다 -
입력 파일:
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);
?>