• ベストアンサー

こんな文字列置換ツールもしくは置換法を探しています。

こんな文字列置換ツールもしくは置換法を探しています。 共通した文字列「文字列A」を含むHTMLファイルが3つあります。 ファイル名は簡単に「1」、「2」、「3」とします。 この3個のファイルの「文字列A」を 置換候補(たとえば「文字列あ」、「文字列い」、「文字列う」)を指定し、 一括で置換できるツールもしくは方法をご存じの方はお教えいただけないでしょうか? ツールの場合、置換候補をCSVファイルなどで一気に指定できればなお良しです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#194317
noname#194317
回答No.2

そういう用途のために昔から存在するツールが、sed(ストリームエディタ)です。これはスクリプトで条件を与えて置換を行うもので、一番安直なスクリプトが、 # test.sed a-->あ、b-->い、c-->う に置換する s/a/あ/g s/b/い/g s/c/う/g と言う感じのスクリプトをテキストファイルで用意しておき、コマンドラインで実行します。これで、置換後のファイル名に a-->あ、b-->い、c-->う に置換された結果が得られます。 sed -f test.sed [置換したいファイル名] > [置換後のファイル名] 置換条件が一つしかない場合は、スクリプトファイルではなく、コマンドラインに直書きすることもできます。詳細は、次のリンクなどをあたってください。正規表現パターンマッチやパターンの記憶置換など、単純な置換だけではない高度な処理が可能です。 解説 http://www001.upp.so-net.ne.jp/hata/sed_reference.html sed win32版 http://www.vector.co.jp/soft/win95/util/se015016.html sedに限らず、置換を一気に行う場合は、条件の与え方に十分注意する必要があります。油断していると、文章だけ置換したいのに、タグの内容にたまたま同じ文字列があると、そこまで置換されてしまったりするので。それを避けるために正規表現などがあるわけですが。

h3idea
質問者

お礼

丁寧な回答ありがとうございました。 おかげで助かりました。 参考サイトも含めて、さっそく勉強させていただきます。 またの機会がありましたらよろしくお願いします。

その他の回答 (1)

  • Toshi0230
  • ベストアンサー率51% (836/1635)
回答No.1

どのような作業をしたいのか今ひとつ理解できません。 例えば、 ・ファイル1は 文字列A→文字列あ ・ファイル2は 文字列A→文字列い という具合にやりたいのか。 それとも各ファイルの中にある文字列Aを文字列あ、文字列い、文字列うに何らかの法則に沿って置換していきたいのか? 前者であればエディタなりsedなどのツールなどでやればよいと思いますが、後者の場合は「法則」がわからないとできるかどうかもわからないと思います。 もう少しやりたいことを詳しく説明してください。

h3idea
質問者

お礼

すばやい回答ありがとうございました。 今回聞きたかったのはToshi0230様が最初に示した例の方法でした。 わかりずらい質問の仕方をしてしまい、申し訳ありませんでした。 そちらの方法もほかの方が回答していただいたのでもう大丈夫です。 今回はありがとうございました。 またの機会がありましたら、よろしくお願いします。

関連するQ&A

  • テキスト置換ツールについて

    あらかじめExcelで作成した置換表(置換前文字列、置換後文字列の一覧)に基づいて、指定したファイル群のテキストを一括置換してくれるようなツールはないでしょうか。

  • CSVファイルの文字列を置換したい

    こんばんは。 CSVファイルが5000ファイル程あります。 それぞれのファイルのある特定の文字列を、一括で 置換する必要があります。 このファイル一つ一つを開いて、手動で置換していた のでは気が遠くなってしまいます。 なにか良いフリーソフトは無いでしょうか? ご存知の方よろしくおねがいします。

  • テキストファイルの文字列置換で更新日時を変更しないツールはありませんか。

    下位フォルダを含む複数のテキストファイル(html,css,aspなど)の文字列を一括置換するツールで、 置換したファイルの更新日時を更新しないようにできるツールはありませんか? よろしくお願いします。

  • こんな一括置換ツールはご存知ないでしょうか?

    置換したい文字列を一度に置換するツールを探しています。 具体的には再置換しないツールを探しております。 理想は変換する文字列をリスト化でき、一括置換するツールです。 例)最適→最善   最善→最適 置換したいリストを作成するツールは色々あったのですが、 上記の例のような設定をするとツールの自動一括置換処理で 最適の文字列を置換した場合 最適→最善→最適 ・・・といった具合に変換前の文字に戻ってしまいます。 ですので、一回置換した文字列を再置換しないツールを探しております。 ツールでなくても方法があれば教えていただきたいです。 どなたかご回答の方よろしくお願いいたします。

  • 複数の文字列を同時に置換できるソフト

    こんにちは。 複数の文字列を一括で置換できるソフトで、 以下の条件に合ったソフトを探しております。 (1)HTMLファイルが読み込める。 (2)複数の文字列を同時に一括置換できる(複数行を対象に)。 (↑あらかじめ置換したいリストを作成・登録する形に なるのかもしれません。) (3)さらに複数のファイルで同時に置換できる。 上記の(1)、(2)は必須になります。 可能であれば、(3)ができれば大変助かります。 ・・以上のようなフリーソフトはありますでしょうか? ご回答よろしくお願い致します。

  • Perlでの文字列置換に関して

    Perlでの文字列置換についてうかがいます。 文字列中からHTMLタグを排除しようと思うのですが、 タグ部分のみをうまく指定することができず、困っています。 どうか御知恵をお貸し下さい。

    • ベストアンサー
    • Perl
  • PLSQLで文字列置換

    よろしくお願いします。 PLSQLで可変長のCSVファイルを読み込み、ある特殊文字があった場合、その 特殊文字が含まれている項目ごとNULLにし、またCSVファイルを出力する。 というプログラムを作りたいのですが、CSVファイルの読込み、書き出しのやり方 は判ったのですが、文字列置換がどうすればいいかわかりません。 またファイルはマルチレイアウトで、カラム数とも不定です。 例) 入力ファイル: A,B,C,D,ABCDEFG,FF,GG となっている場合、'E'という文字があるカラムはNULLで出力する というときに 出力ファイル: A,B,C,D,,FF,GG としたいのです。 ご教授下さい。

  • 文字列一括置換ソフトを探してます

    文字列一括置換ソフトを探してます・・・って書くと、Vectorに行けばいっぱいあると言われそうですが、ちょっと条件が特殊です。 ・複数(多分500~1000個)のテキストファイルの指定文字列を一括置換したい(ここまでは普通) ・対象の文字列の置換パターンが3万件(苦笑) ワイルドカードなどではなく、3万の単語を別の3万の単語に置換したいのです。 (プログラムの変数を、ネーミングルールを変えたために総入れ替えする・・・と考えて頂ければ分かっていただけるでしょうか) 10件くらいのパターンを連続して置換するソフトは見つかったのですが、3万件となると・・・。 (そもそも3万件のリストをよく作ったもんだ) UNIXにsedというコマンドがあるというのは聞いたことがあるのですが、Windows(&DOS)しか触ったことがないので、どうすれば良いのか分かりません(私はプログラマじゃありません)。 なお、同じネタでエクセルのワークシートのセルを置換する必要があるのですが、こちらは自作マクロで対応しています。 もし適当なソフトが見つからなければ、エクセルマクロの作成を検討しています。 (マクロでテキストファイルの読み込みはやったことがあるのですが、書き出しは多分やったことがない) 置換リストはエクセルで作成しているので、リストはソフトに応じた形式で準備できると思います。 以上、よろしくお願いいたします。

  • 複数PDFファイル内の特定文字列を一括置換したい

    社名変更に伴ない、数百個あるPDFファイル内にある社名部分を新しい社名に置換したいのですが、 通常のsed(ストリームエディタ)やテキストファイル用置換ツールでは、文字列の検出は行われても置換ができなくて困っています。 置換個所・対象ファイルが多いので、 「検索」->「タッチアップツール」->「書き換え」->・・・ では、気が遠くなりそうです。 一括置換出切る方法・ツールがあれば教えて下さい。

  • 文字列の置換で・・・

    Javaでの文字列の置換についてなんですが ある文字を任意の文字に置換し表示させるとともに 何個の文字を置換したかも同時に知らせたい場合は どのような処理をしたらよいでしょうか? ぜひご協力よろしくお願いします!! (例)入力した文字列に"a"が含まれる場合は"b"に置換し   その際に変換した文字数も表示してください。     basic→出力結果: "bbsic" 置換した文字数は1です。

    • ベストアンサー
    • Java