首页 > 解决方案 > 在大量文件中查找和替换模式

问题描述

我想使用正则表达式替换大约 80.000 个日志文件中的文本。我喜欢 VSCode 的批量搜索和替换。我无法用 VSCode 做到这一点,因为它似乎不能很好地处理这么多的数据。有什么建议我可以用 VSCode 做到这一点吗?有替代品的建议吗?

标签: regexvisual-studio-codebatch-processing

解决方案


与其依赖基于 GUI 的工具,不如使用 CLI 工具来实现这一点更容易。

如果您使用的是 Linux,或者愿意安装任何工具sedfind如果您使用的是 Windows,那么它应该相对简单。

您可以sed在所有(或至少大多数)Linux 发行版上使用 which 是一个命令行工具,并且可以安装在 Windows 上。

用法(对于这个用例):
sed -i s/{pattern}/{replacement}/g {file}

用于sed将匹配的模式替换为替换,使用全局修饰符匹配所有结果,并使用文件进行替换和覆盖。

要定位目录中的所有文件,您可以执行以下操作:
find -type f -name "*.log" exec sed -i s/{pattern}/{replacement}/g {};

从类型为文件的当前目录开始递归查找项目,其名称以 . 结尾.log。然后用于sed将模式替换为每个匹配文件所需的内容。

您可以在以下问题上找到如何获取类似 Windows 的工具sedhttps ://stackoverflow.com/a/127567/6277798find


推荐阅读