diff와 patch에 대해 읽었지만 필요한 것을 적용하는 방법을 알 수 없습니다. 나는 그것이 매우 간단하다고 생각하므로 내 문제를 보여주기 위해이 두 파일을 가져 가라.
a.xml
<resources>
<color name="same_in_b">#AAABBB</color>
<color name="not_in_b">#AAAAAA</color>
<color name="in_b_but_different_val">#AAAAAA</color>
<color name="not_in_b_too">#AAAAAA</color>
</resources>
b.xml
<resources>
<color name="same_in_b">#AAABBB</color>
<color name="in_b_but_different_val">#BBBBBB</color>
<color name="not_in_a">#AAAAAA</color>
</resources>
다음과 같은 출력을 원합니다 (순서는 중요하지 않음).
<resources>
<color name="same_in_b">#AAABBB</color>
<color name="not_in_b">#AAAAAA</color>
<color name="in_b_but_different_val">#BBBBBB</color>
<color name="not_in_b_too">#AAAAAA</color>
<color name="not_in_a">#AAAAAA</color>
</resources>
병합에는 다음과 같은 간단한 규칙에 따라 모든 줄이 포함되어야합니다.
- 파일 중 하나에 만있는 행
- 행에 이름 태그는 동일하지만 값이 다른 경우 두 번째 값을 가져옵니다
이 작업을 bash 스크립트 안에 적용하고 싶기 때문에 다른 프로그램이 더 적합하다면 diff와 patch를 반드시 수행 할 필요는 없습니다.
diff
하나의 파일에 있지만 다른 파일이 아닌 전체 행의 세분성에만있는 행을 알려줄 수 있습니다.patch
유사한 파일 (같은 파일의 다른 버전 또는 각 변경에 대한 줄 번호와 주변 줄이 원본 파일과 동일한 파일 일 수도 있음)을 동일하게 변경하는 데만 적합합니다. 따라서이 작업에는 특히 적합하지 않습니다. 살펴보고 싶을 수도wdiff
있지만 솔루션에는 사용자 지정 스크립트 가 필요할 수 있습니다 . 데이터는 XML처럼 보이므로 일부 XSL 도구를 찾아 볼 수 있습니다.