人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

指定文字「a1」?「a2」間の語句を全削除したい

テキストファイル内の指定した文字「a1」?「a2」の間にある言葉を全部削除という処理ができるソフトはありますか?
これを複数のテキストファイルに対して一括で処理したいです。
指定する文字「a1」と「a2」という語句はすべてのファイルに入っており、「a1」?「a2」の間に入っている語句はファイルによってバラバラです。

そこで、すべてのファイルに対して「a1」「a2」を指定して、その間にある語句のみ削除を一括で行うということがしたいのですが可能でしょうか?

それができるソフトがあれば教えてください。


●質問者: kafeeen
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● freemann

http://q.hatena.ne.jp/1330148197
で回答したスクリプトを利用すると次のコマンドで行えます。

Replace.ps1 -in *.txt -reg "(?s:(?<=a1).*?(?=a2))"

こちらも私の環境で確認はしていますが、念のためコピーしたファイルを使用して試してみてから本番で使用してください。


2 ● rouge_2008
ベストアンサー

正規表現による一括検索・置換ソフトを利用するといいです。
別の質問(http://q.hatena.ne.jp/1330148197)にメモ帳とあったので、Windowsのソフトをご紹介しますが、「Repl-Ace on .NET」がおすすめです。

「Repl-Ace on .NET」
http://www.forest.impress.co.jp/lib/sys/file/filesearch/repl_ace.html
※Windows 2000、XP、Vistaで動作するソフトですが、7でも動作したという情報がありました。
http://b.hatena.ne.jp/entry/www.sirmiles.com/repl_ace/

Windows Vistaおよび7には「.NET Framework 2.0」はインストールされているようですが、インストールされているバージョンを確認したい場合は、以下の2番目のURLで配布しているバッチファイルを実行してみてください。
http://www.atmarkit.co.jp/fdotnet/dotnettips/934win7fx/win7fx.html
http://www.atmarkit.co.jp/fwin2k/win2ktips/246checkvdnfw/checkvdnfw.html

「Microsoft Visual C++ 2008 再頒布可能パッケージ (x86)」を未インストールの場合は、ダウンロードしてインストールしてください。

・Microsoft Visual C++ 2008 SP1 再頒布可能パッケージ (x86)【32bit用】
http://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=a5c84275-3b97-4ab7-a40d-3802b2af5fc2&DisplayLang=ja&pf=true

・Microsoft Visual C++ 2008 SP1 再頒布可能パッケージ (x64)【64bit用】
http://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=ba9257ca-337f-4b40-8c14-157cfdffee4e&DisplayLang=ja&pf=true


・「Step 1」で「文字セットを判定しながら検索」にチェックを入れるようにしてください。
※ファイルの文字コードがすべて同じ場合は、「Step 2」の「他の機能」→「デフォルトの文字セット」と「デフォルトの改行文字」で正しい文字コードと改行文字を選択しておけば、上記項目のチェックは必要ありません。
・検索文字列と置換文字列の欄にはそれぞれ次のように入力して、「正規表現を使う」にチェックを入れたら、「追加」ボタンを押します。

検索文字列:(?<=a1)(?s:.+?)(?=a2)
置換文字列は空欄のまま

※以下のようにしても同じように置換できます。
検索文字列:(a1)(?s:.+?)(a2)
置換文字列:$1$2

※上記は文字列がa1?a2が複数行にまたがるケースにも対応させてあります。(単一行内にある場合も検索・置換可能です。)
※メイン画面左下の「設定」を開いて、「バックアップを作成」にチェックを入れておくと、実行後に処理結果画面から「他の機能」→「すべてバックアップから戻す」で簡単に復元できます。
(復元実行後に『バックアップから戻せないファイルがありました。』と表示される事がありますが、検索・置換箇所がなかったファイルのバックアップは作成されていない為です。置換が実行されたファイルはバックアップが作成されて、復元実行時には正常に復元されますので心配ありません。)

※処理プラン(検索・置換の内容)は複数登録できます。対象フォルダの分だけ複数回実行する必要がありますが、検索する場所で対象フォルダを変更後、対象フォルダ用の任意のプランにチェックを入れ替えて実行すると、別の質問(「http://q.hatena.ne.jp/1330124078」や「http://q.hatena.ne.jp/1330122680」)にも対処できると思います。
※例えば、検索文字列は「サイトURL」で共通ですが、置換文字列をそれぞれ「http://www.yahoo.co.jp/」、「http://www.google.co.jp/」、「http://q.hatena.ne.jp/」と入力した3つの処理プランを作成して、3回に分けて実行します。

他、詳しい使い方はreadmeを参照してください。(※ソフトの配布ファイルにも含まれています。)
http://www.sirmiles.com/repl_ace/readme/index.html


※一括検索・置換ソフトでしたら他のソフトでも希望の操作は可能ですが、ソフトによって多少正規表現が異なる場合もあります。

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ