我正在寻找一种在数百个文件中查找和替换文本的方法。
我知道 Geany 可以在多个文件中查找文本。这很好。但是我该如何替换文本呢?
Geany 似乎只在当前打开的文件中执行此操作。如何在 Geany 中找到搜索字符串的位置打开所有文件?
答案1
您可以通过等待插件出现来做到这一点,或者使用终端。我认为第二种方法目前更好。我会解释如何做。
要打开目录(及其子目录)内找到特定字符串的所有文件,请打开 Geany,选择终端标签来自消息窗口并在里面运行下一个命令:
grep -rHIF --exclude='/directory_path/*~' -- 'text_to_find' /bin/bash /directory_path/* | geany `awk 'BEGIN {FS="[:]"} {print $1}'`
例如,要/home/radu/bin
使用 Geany 打开目录中的所有 bash 脚本,我运行以下命令:
grep -rHIF --exclude='/home/radu/bin/*~' -- '#!/bin/bash' /home/radu/bin/* | geany `awk 'BEGIN {FS="[:]"} {print $1}'`
要在 Geany 的新实例中打开这些文件而不加载前一个会话的文件,请使用命令-is
参数geany
:
grep -rHIF --exclude='/directory_path/*~' -- 'text_to_find' /bin/bash /directory_path/* | geany -is `awk 'BEGIN {FS="[:]"} {print $1}'`
现在您已经在 Geany 的单个会话中打开了所有需要的文件,按Ctrl+H打开代替对话框中,插入要查找的文本,插入要替换的文本,然后按会话中按钮:
答案2
- 选择所有想要编辑的文件,然后用 Geany 打开它们。
- 从 Geany 菜单中选择搜索->代替。
- 将会打开一个新的替换窗口。在全部替换部分选择会话中如下图所示。在这个例子中,我选择用字符串“replace-text”全局替换字符串“search-text”。
- 从 Geany 菜单中选择文件->保存全部。
- 从 Geany 菜单中选择文件->关闭所有并关闭 Geany,或者选择文件->辞职。
这是在 Geany 中替换多个文件中的文本的方法。如果您想在替换之前查找多个文件中的文本的所有实例,您可以选择搜索->寻找从 Geany 菜单中选择,包含搜索词的文件的文件名和行号将显示在 Geany 窗口底部窗格的列表中。Geany 中打开的任何选项卡,如果其文件名未在 Geany 底部窗格的此列表中找到,则可以手动一次关闭一个,或者您可以保持所有选项卡打开,因为这对替换操作的结果没有任何影响。