두 odt 파일 간의 스타일을 구별하는 방법은 무엇입니까?

두 odt 파일 간의 스타일을 구별하는 방법은 무엇입니까?

두 개의 서로 다른 Open Document Text 파일(odt)에 포함된 스타일을 어떻게 구별합니까?

예를 들어 A라는 사람이 문서를 만들고 제목/제목 스타일을 수정하여 공유 드라이브에 문서를 저장합니다. B는 스타일을 수정해 다른 이름으로 저장했는데, 수정이 미묘했다. 어떤 스타일이 수정되었는지 알려줄 수 있는 도구는 무엇입니까?

odt 파일을 "압축해제"해야 하는 솔루션이 유효합니다.

단지 styles.xml을 비교하는 것은 작동하지 않습니다. 왜냐하면 모든 것이 한 줄에 있고 정확히 동일하지 않으면 모든 것이 변경되었다고 생각하기 때문입니다.

답변1

당신이 가지고 있다면압축을 푼다그리고XML2설치한 후에는 다음을 수행할 수 있습니다.

#!/bin/bash

a="$1"
b="$2"

diff -u <(unzip -p "$a" styles.xml | xml2) \
        <(unzip -p "$b" styles.xml | xml2)

xml2grepXML 파일을 다음과 같은 라인 기반 sed도구 와 함께 사용하기에 적합한 형식으로 변환합니다.cutdiffxml2는 어디로 갔나요?) 그러나 여전히 매우 유용하고 더 이상 사용되지 않는 소프트웨어이며 일부 배포판(예: sudo apt-get install xml2Debian 및 그 파생물)에서는 여전히 패키지로 제공됩니다.

참고: .odt는 수년에 걸쳐 많이 변경되었으므로 .odt 파일의 일부 버전은 zip 파일 내의 다른 파일(또는 하위 디렉터리)에 스타일을 유지할 수 있습니다. 이들 중 하나가 발생하면 먼저 각 .odt 파일을 확인하도록 스크립트를 수정해야 합니다(예: 다음을 unzip -vl사용) .

개인적으로 나는 bash나 다른 쉘에서 위의 스크립트보다 더 복잡한 작업을 수행하지 않을 것입니다. 나는 펄을 주로 사용한다.ODF::lpOD아니면 DIY로아카이브::우편번호그리고 Perl의 XML 처리 모듈 중 하나(아마도XML::단순). 아마도알고리즘::차이또한.


그런데 모르는 경우 .odt파일은 XML, 이미지 및 기타 파일이 포함된 zip 파일일 뿐이며 zip의 최상위 디렉터리나 하위 디렉터리에 있습니다.

관련 정보