regex - 在大量文件中查找和替换模式
问题描述
我想使用正则表达式替换大约 80.000 个日志文件中的文本。我喜欢 VSCode 的批量搜索和替换。我无法用 VSCode 做到这一点,因为它似乎不能很好地处理这么多的数据。有什么建议我可以用 VSCode 做到这一点吗?有替代品的建议吗?
解决方案
与其依赖基于 GUI 的工具,不如使用 CLI 工具来实现这一点更容易。
如果您使用的是 Linux,或者愿意安装任何工具sed
,find
如果您使用的是 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 的工具sed
:https ://stackoverflow.com/a/127567/6277798find
推荐阅读
- razor - 如何设置
我有一个 MVC 应用程序,其徽标图像位于我的 Images 文件夹中。文件名始终是“egs_logo_small”,但它可以是 .png 或 .jpg 或 .gif 等...我想简单地设置我的
@
- angular - Angular Search 更好的方法
- ios - 从已部署的应用程序中删除 WatchKit 应用程序 - iOS WatchOS Swift
- r - ggpubr -> ggline plot:无法重现具有多个因素的示例
- c - 我不确定这有什么问题......我认为这与 char 变量有关
- python - Python 3.x ImportError:没有名为 configparser 的模块,但已安装模块
- python - 无法弄清楚 TypeError
- r - 按中位数排序的动态 ggplot 函数
- javascript - 无法在 React 中获取当前位置
- verilog - 我使用 verilog 进行矩阵乘法的结果未显示