OS X でハイパーリンクや画像を削除せずに rtfd ファイルを txt に変換する

OS X でハイパーリンクや画像を削除せずに rtfd ファイルを txt に変換する

私は持っているたくさん(>10k ... これは手動ではできません) の rtf および rtfd ファイルを txt ファイルに変換したいと考えています。残念ながら、それらには失いたくない画像とハイパーリンクが含まれています。理想的には、次の操作を実行したいと思います。

  1. rtf/rtfd からのハイパーリンクをプレーンテキストとして保存します ( のようなもの[[description]link])

  2. すべての画像をrtfdファイルから「分離」する

  3. URL を含む新しい txt と、rtf/rtfd ファイルからの画像が、古い rtf/rtfd ファイルの名前の付いたフォルダーに一緒に保存されます。

これはどうすればできるのでしょうか?

答え1

.rtfdTXT.rtfこれらは、非標準のフォーマット指示と画像を含むファイルの単なるバンドルです。したがって、これらと RTF ファイルは既に別々に存在します。

RTF ファイルは、HTML と同様に、いくつかの書式指定を含むテキストです。そのため、単純なテキスト ベースの文字列置換を使用できます。

埋め込まれた画像は、サンプル ドキュメントでは次のようになります。

{{\NeXTGraphic Screen Shot 2012-02-01 at 19.47.21.png \width13940 \height11020
}¬}

RTF ファイルでは、 のすべての出現箇所を\NeXTGraphic「Image:」などに変更します。次にファイルを開いたときに、他の書式は単に無視されます (少なくとも私の限られたテストでは)。

埋め込まれたハイパーリンクは次のようになります。

{\field{\*\fldinst{HYPERLINK "http://superuser.com/questions/384862/osx-converting-rtfd-files-to-txt-without-deleting-hyperlinks-and-pictures"}}{\fldrslt applescript - OSX: Converting rtfd files to txt, without deleting hyperlinks and pictures - Super User}}\
\
}

これも、ほとんどのエディタで実行できる、かなり単純なテキスト置換です。たとえば、sedコマンド ラインで を使用することもできます。fldinstは基になるハイパーリンク URL で、fldrsltはラベルです。


すべての画像とハイパーリンクをプレーン テキストと互換性のある代替物に置き換えたら、を実行するだけでtextutil -convert txt Document.rtfd/TXT.rtfRTF ファイルをプレーン テキストに変換できます。

埋め込まれた画像とハイパーリンクの置き換えを事前に行わなかった場合、これらは失われていたでしょう。


もちろん、textutil情報を失うことなく HTML や画像ファイルに変換できます。HTML タグの置換をスクリプト化することに慣れている場合は、最初にこれを実行できます。

関連情報