官方评论 嗨,本, 有几个选项。 第一个是使用 sed 的“-i 扩展名”选项并就地编辑文件。然后您可以从用于 old_file.fasta 的同一个文件中回读,它将包含修改后的序列。 第二个选项是执行一个 shell,这样你就可以使用重定向而不是直接执行 sed。例如: new String[] { “sh”, “sed's/CGTGACAATTCCAAAACACCCTGTACTTGCAGA/CGTGACAATTCCAAAAACACCCTGTACTTGCAGA/g' old_file.fasta > new_file.fasta” } 另一种选择是实现 com.biomatters.geneious.publicapi.utilities.Execution.OutputListener 并将标准输出捕获为字符串。然后在创建新的 com.biomatters.geneious.publicapi.utilities.Execution 时提供此 OutputListener。 最后一个更复杂的选项是直接使用 ProcessBuilder 并调用 redirectOutput 方法。您需要自己处理 com.biomatters.geneious.publicapi.utilities.Execution 已经为您完成的所有边缘情况。 如果您只想以这种方式进行搜索和替换,那么使用内置的 String.replaceAll(或其他变体之一)会容易得多。 希望其中之一对您有用。 干杯,杰森 杰森 2019年1月29日18:37 分享 评论动作 永久链接
0 嗨,本, 我看到 Jason 给你回复了专门针对 Geneious JAVA API 的建议,而不是针对包装器插件的建议。 我已经快速浏览了将 SED 与 Geneious Wrapper 插件工具一起使用并使其工作。 关键要注意: * 不要用引号将搜索/替换短语包装起来,因为包装器外壳会错误地解释这些短语。 以下是所用设置的屏幕截图。 步骤1。使插件类型通用操作。“选择” sed 可执行文件。 第2步。使用如下所示的设置。 第 3 步。为完整的 sed 短语添加一个选项(不带引号) 我添加了一个命令行开关(这是必需的),但设置为忽略名称-值分隔符,以便不使用该开关。 亲切的问候,莫兰 莫兰兰·吉布斯 2019年1月30日21:00 0 票分享 评论动作 永久链接
0 嗨,莫兰德, 感谢您的详细说明 - 完全按照描述工作!注意以防其他人将来需要类似的结果。因为我想找到一个特定的序列(我们称之为 AAAAA)并总是用另一个(CCCCC)替换它,所以我将设置页面上的命令行更改为以下内容: 然后我在步骤 3 中删除了用户输入选项,插件会自动搜索 AAAAA 并替换为 CCCCC! 本·基菲尔 2019年1月31日6:43 0 票分享 评论动作 永久链接