2009-08-03 7 views
1

状況は次のとおりです。テキスト置換を自動化する最適な方法は何ですか?

私は多くのHTMLファイルを持っており、これらのHTMLファイルは多くのドキュメントにリンクしています。文書の名前はすべて変更されています。私はファイルの古い名前とファイルの新しい名前を持つExcelシートを持っています。

新しい名前に対応するためにHTMLファイル内のリンクを変更する最も簡単な方法は何ですか?

私が今使っている方法: は、すべてのHTMLファイルが新しいファイル名で特定のリンクのすべての出現を置き換えるために開いているすべての文書 『関数に置き換えメモ帳++ メモ帳++ 'S』で開かれています。

もっと速く、より良い方法がありますか?

+0

perl?これはプログラミングサイトなので、自然な答えは "プログラムを書く"ことです。おそらくあなたはスーパーユーザーを探していますか? – derobert

+0

「良い」開発者はすべてスーパーユーザだと思っていました。 –

答えて

1

Perlの正規表現。

精緻化: 擬似コード

open up each file for read-only and read them into a list. 
close the files 
foreach element in the list 
#do the desired text replacement 
`s/$oldtext/$newtext/g`; 
open each file once more now for writing 
write out the new text. 

それは難しいことではありませんが、いくつかのテストが必要です。編集回数が多い場合(さらに多くの場合があります)、これはより効率的です。

+0

手入れが行き届いていますか? :) – Nikko

+0

これは働いた。私はPerlの代わりにPHPを使っていましたが、正規表現は本当に必要ありませんでした。 – Nikko

+0

regexp:sの+1(perlまたはphpから使用されている場合に関係なく) – Johan

0

いくつかのファイルにテキストを置き換え、いくつかの自由とオープンソースのツールがありますが、オープンソースのものの一つですFART

あなたはGUIで何かを好む場合は、無料のText Crawler

+0

これらのソリューションにはインストールが必要ですか?私は仕事のためにこれをやっているので、私のPCに何かをインストールすることは問題になりません。 – Nikko

+0

@ニッコ:FARTはインストールを必要とせず、ただ実行可能です。 –

0

ファーストを試してみてくださいあなたの好きな言語、例えばperlで読みやすいように、csvファイルのように素敵でシンプルなものにExcelを保存してください。各ファイルを繰り返し処理し、検索して置き換えます。 1つの問題は、複雑な方法で変更されたリンクがある場合は、問題を引き起こす可能性があります。つまり、ファイルa.htmlがb.htmlに変更され、b.htmlがa.htmlに変更された場合、複数のパスでそれを行うと、リンクが壊れる可能性があります。そのため、すべての変更をメモリにロードし、各ファイルを順番に切り替えて、その中のすべてのリンクを同時に置き換えます。

それは、具体的なHTMLの検索であり、このようなツールが理想的である置き換えるので:

http://www.aliassoftware.com/

見つけて、一度に複数のファイルで複数のテキスト文字列を置き換えます!

関連する問題