web-dev-qa-db-ja.com

geanyを使用して複数のファイル内のテキストを検索して置換する

何百ものファイルのテキストを見つけて置換する方法を探しています。

Geanyは複数のファイルでテキストを検索できることを知っています。それは良い。しかし、テキストを置き換える方法は?

Geanyは、現在開いているファイルでのみそれを行うようです。 Geanyですべてのファイルを開き、検索文字列を見つけます。

ありがとう

3
SPS
  1. 編集するすべてのファイルを選択し、Geanyで開きます。
  2. GeanyメニューからSearch-> Replaceを選択します。
  3. 新しい[置換]ウィンドウが開きます。 Replace Allセクションで、下の図に示すようにIn Sessionを選択します。この例では、文字列「search-text」を文字列「replace-text」でグローバルに置き換えることを選択しました。
  4. GeanyメニューからFile-> Save Allを選択します。
  5. GeanyメニューからFile-> Close Allを選択してGeanyを閉じるか、またはFile-> Quitを選択します。

enter image description here

これは、Geanyの複数のファイルのテキストを置き換える方法です。置換する前に複数のファイルでテキストのすべてのインスタンスを検索する場合は、GeanyメニューからSearch-> Findを選択し、ファイル名と行を選択できます。検索語を含むファイルの行番号が、Geanyウィンドウの下部ペインのリストに表示されます。 Geanyの下部ペインのこのリストにファイル名が見つからないGeanyで開いているタブは、一度に1つずつ手動で閉じることができます。または、すべてのタブを開いたままにしておくことができます。交換操作。

2
karel

これを行うには、プラグインがこの意味で表示されるのを待つか、 terminal を使用します。今のところ、2番目の方法の方が良いと思います。方法を説明します。

特定の文字列が見つかったすべてのファイルをディレクトリ(およびサブディレクトリ)内から開くには、Geanyを開き、メッセージウィンドウからターミナルタブを選択し、内部で次のコマンドを実行します:

grep -rHIF --exclude='/directory_path/*~' -- 'text_to_find' /bin/bash /directory_path/* | geany `awk 'BEGIN {FS="[:]"} {print $1}'`

たとえば、Geanyで/home/radu/binディレクトリにあるすべてのbashスクリプトを開くには、次のコマンドを実行します。

grep -rHIF --exclude='/home/radu/bin/*~' -- '#!/bin/bash' /home/radu/bin/* | geany `awk 'BEGIN {FS="[:]"} {print $1}'`

Geany

前のセッションのファイルをロードせずにGeanyの新しいインスタンスでこれらのファイルを開くには、geanyコマンドに-is引数を使用します。

grep -rHIF --exclude='/directory_path/*~' -- 'text_to_find' /bin/bash /directory_path/* | geany -is `awk 'BEGIN {FS="[:]"} {print $1}'`

Geanyの単一セッションで開く必要のあるすべてのファイルが用意できたので、 Ctrl+H Replaceダイアログを開くには、検索するテキストを挿入し、置換するテキストを挿入して、In Sessionボタンを押します。

Geany Search & Replace Dialog

1
Radu Rădeanu