以下の条件にあうソフトを探しています。


※指定したフォルダ以下の、ある指定したファイル拡張子をすべて探し出す。
※さらにそのファイル内に存在する言葉を指定した言葉に置き換える。
※言葉を指定する場合に正規表現を使うことが出来る。

以上の条件にあうソフトを探しています。
有料でもかまいません、よろしくお願い致します。

回答の条件
  • URL必須
  • 1人20回まで
  • 登録:
  • 終了:2007/07/05 22:15:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答4件)

id:chuken_kenkou No.1

回答回数722ベストアンサー獲得回数54

ポイント27pt

「秀丸」はいかがでしょうか?

高機能のテキストエディタとして、かなり有名です。

http://hide.maruo.co.jp/

id:Mook No.2

回答回数1314ベストアンサー獲得回数393

ポイント27pt

フリーソフトのものですが、下記はどうでしょうか。

Grep and Replace


ファイル名の名前に 「*.捜したい拡張子」、含まれる文字列、探す場所を入力して検索し、

置換したい文字列を入れて、置換を実行することで希望される処理が出来る戸思います。

id:llusall No.3

回答回数505ベストアンサー獲得回数61

ポイント26pt

1.以下のスクリプトをメモ帳などで[一括置換.vbs]などの名称で、デスクトップあたりに保存します。

2.■の部分を修正します。

3.ダブルクリックで実行されます。

Option Explicit

Const EXT = "txt" '小文字           '■対象ファイルの拡張子

Const TARGET_FOLDER = "D:\WSH"      '■対象フォルダ

Const REG_IGNORECASE = False        '■大文字小文字の区別を無効

Const REG_PATTERN = "置換前"        '■正規表現のパターン

Const REPLACE_TEXT = "置換後"       '■置換後の文字列

Dim objFSO, objFolder

Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")

Set objFolder = objFSO.GetFolder(TARGET_FOLDER)

Call ReplaceFiles(objFolder)

MsgBox "おしまい"

Sub ReplaceFiles(objFolder)

    Dim objFile, objSubFolder

    For Each objFile In objFolder.Files

        If EXT = GetFileExt(objFile.Path) Then

            Call ReplaceFile(objFile.Path)

        End If

    Next

    For Each objSubFolder In objFolder.SubFolders

        Call ReplaceFiles(objSubFolder)

    Next

End Sub

Sub ReplaceFile(ByVal fileName)

    Const ForReading = 1

    Const ForWriting = 2

    Const ForAppending = 8

    Dim f1, f2, strData, file

    Set f1 = objFSO.OpenTextFile(fileName,ForReading)

    Set f2 = objFSO.CreateTextFile( fileName & ".tmp", True )

    strData = f1.ReadAll

    Dim oRe, oMatch, oMatches

    Set oRe = WScript.CreateObject("VBScript.RegExp")

    With oRe

        .Global = True

        .IgnoreCase = REG_IGNORECASE

    End With

    oRe.Pattern = REG_PATTERN

    strData = oRe.Replace( strData, REPLACE_TEXT)

    f2.Write(strData)

    f1.Close

    f2.Close

    Set f1 = Nothing

    Set f2 = Nothing

    objFSO.DeleteFile(fileName)

    Set file = objFSO.GetFile(fileName & ".tmp")

    file.Name = objFSO.GetFileName(fileName)

End Sub

Function GetFileExt(ByVal sPath)

    Dim sFileExt

    sFileExt = objFSO.GetExtensionName(sPath)

    GetFileExt = LCase(sFileExt)

End Function

※VBScriptの正規表現のパターンはこちらを参考にしてください。

http://www.microsoft.com/japan/msdn/columns/scripting/scripting0...

http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja...

id:arousan No.4

回答回数5ベストアンサー獲得回数0

ポイント10pt

http://www.sirmiles.com/software/repl_ace.htm

Repl-Ace(リプル・エース)

Web制作の業務で自分も使っていますが、こういうことでしょうか。

ワイルドカードも使えますし、サブフォルダも検索対象に出来ます。

  • id:tezcello
    わざわざポイントを使って探しているという事は、Win用という事だと思います。
    ですが、そのファイルを全部 Linux へ持っていければ、全て標準の機能で出来そうに思います。
    ・特定ディレクトリの特定拡張子のファイルを探し、そのファイルに何かをする ー> find コマンドで
    ・正規表現で文字列の置き換え ー> sed コマンドで

    または、Perl, PHP などでスクリプトを書いてやる事もできます。
     特定のディレクトリで、条件に合うファイルを探して
     それぞれを読み込んで、必要な部分を置き換え保存する
    文字コードに気を付ける以外はそれほど難しくないと思います。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません