텍스트 파일에서 스크립트를 실행 중이며 해당 내용을 병합하고 싶습니다. 파일 이름이 "file1"이라고 가정합니다.
파일 1:
이건 문자야, 와!
이제 스크립트를 실행한 후 여러 버전이 생겼습니다.
파일 2:
내 <>는 텍스트입니다. 와!
파일 3:
귀하의 <>는 텍스트입니다. 와!
파일 4:
이것은 txt<>입니다. 와!
보시다시피 일부 단어가 다른 단어로 변경되고 <>가 추가되었습니다. 이제 단어가 변경될 때 병합되도록 이러한 파일을 병합하고 싶습니다.
산출:
내<>너희<>는 txt<>야, 와!
순서는 중요하지 않습니다. 병합만 하면 됩니다. 이를 쉽게 해주는 도구가 있나요?
답변1
이 작업을 수행할 수 있는 도구는 없지만 코딩하는 것은 어렵지 않습니다. 다음은 Perl의 일부입니다.
perl -E 'for $i (1..4) { open ($file,"<","file${i}"); { local $/; @{$words[$i]} = split " ",<$file>; }; close($file); }; for $i (0..scalar(@{$words[1]})-1) { $p=0; for $j (2..4) { if ($words[1][$i] ne $words[$j][$i]) { print $words[$j][$i]; $p++ } } unless ($p) { print $words[1][$i] }; print " "; } print "\n"'
많은 것들이 개선될 수 있습니다. 그것을 사용해야 한다면 가장 먼저 수정해야 할 것은 줄 끝에 있는 추가 공간일 것입니다. 아마도 출력 단어를 배열에 추가하고 조인 기능을 사용할 것입니다. 실제로 이상한 작업을 수행하는 것은 매우 어렵습니다.