2つのodtファイル間のスタイルを区別する方法は?

2つのodtファイル間のスタイルを区別する方法は?

2つの異なる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処理モジュールの1つ(おそらくXML::シンプル)。おそらくアルゴリズム::差また。


しかし、わからない場合、.odtファイルはXML、画像、その他のファイルを含むzipファイルにすぎず、zipの最上位ディレクトリまたはサブディレクトリにあります。

おすすめ記事