0

私は本の Kindle(HTML) および Open Office バージョンを管理している著者です。どちらか一方に変更を加えるのを忘れることがあり、ドキュメントが分岐しています。

私の手順は、それぞれからテキストをコピーし、UTF-8 で (TextEdit の貼り付けと一致スタイルを使用して) 別のテキスト ファイルに貼り付けてから、差分操作を実行することです。ただし、HTML を貼り付けると、段落間に空白行が追加されます。

ファイル差分ツールがありますが、空白行を無視するオプションがありません。私の考えは、空白行を削除する Perl スクリプトを作成することでした。ただし、そのスクリプトの出力は、ndashes、中引用符などの特殊文字を台無しにします。BINMODE やその他のトリックを使用してみましたが、役に立ちませんでした。

空白行を無視する MAC OS X 用のフリー コンパレータへのポインタ、または Perl で UTF-8 特殊文字を台無しにしないようにする方法を受け入れます。Perl 5.14 を使用しています。新しい機能に依存しない回答を好みますが、新しい Perl をインストールする必要がある場合はそうします。

アップデート:

これは動作しません:

use open IO  => ":encoding(iso-8859-7)";
open(FILE, "From HTML.txt") or die "$!\n";
open(OUT, ">From HTML - no blank lines.txt") or die "$!\n";
while(<FILE>) {
    next if /^\s*$/;
    print OUT $_;
}
close FILE; close OUT;

私も電話してみたbinmode(OUT, ":utf8");

更新: 別の Stackoverflow の質問からこのヒントを成功させずに試しました:

open(my $fh, "<:encoding(UTF-8)", "filename");
4

3 に答える 3

1

GNU diffには-B/--ignore-blank-lines-b/--ignore-space-changeがあります。

于 2012-07-15T16:37:15.737 に答える
0

XCodeテキストエディタを使用することになりました。改行を選択して検索/置換ダイアログに貼り付けることで、二重の改行をすべて単一の改行に置き換えることができました。次に、ファイルを保存し、Compare ユーティリティを使用しました。

于 2012-07-18T20:39:03.673 に答える
0

エラー、「use open」は、データがUTF-8ではないことを示しています。FILE と OUT の両方で binmode を試しますか?

于 2012-07-15T17:27:43.220 に答える