我想用一个正则表达式替换大约80.000个日志文件中的文本。我喜欢VSCode的批量搜索和替换。我无法用VSCode来做这件事,因为它似乎不能很好地处理这么多的数据。有什么建议我可以用VSCode来做这件事吗?有替代方案的建议吗?
q7solyqu1#
与依赖于基于GUI的工具相比,使用CLI工具可能更容易。如果您使用的是Linux,或者如果您使用的是Windows,则愿意安装sed和find等任何工具,那么它应该相对简单。您可以使用sed,它是所有(或至少大多数)Linux发行版上的命令行工具,并且可以安装在Windows上。用法(针对此用例):sed -i s/{pattern}/{replacement}/g {file}使用sed将匹配的模式替换为替换模式,使用全局修饰符匹配所有结果,使用文件进行替换和覆盖。要定位目录中的所有文件,可以执行以下操作:find -type f -name "*.log" exec sed -i s/{pattern}/{replacement}/g {};从当前目录开始递归查找条目,其中条目的类型是file,并且条目的名称以.log结尾,然后使用sed将模式替换为每个匹配文件的内容。您可以通过以下问题找到如何获取sed和find for Windows等工具:https://stackoverflow.com/a/127567/6277798
sed
find
sed -i s/{pattern}/{replacement}/g {file}
find -type f -name "*.log" exec sed -i s/{pattern}/{replacement}/g {};
.log
1条答案
按热度按时间q7solyqu1#
与依赖于基于GUI的工具相比,使用CLI工具可能更容易。
如果您使用的是Linux,或者如果您使用的是Windows,则愿意安装
sed
和find
等任何工具,那么它应该相对简单。您可以使用
sed
,它是所有(或至少大多数)Linux发行版上的命令行工具,并且可以安装在Windows上。用法(针对此用例):
sed -i s/{pattern}/{replacement}/g {file}
使用
sed
将匹配的模式替换为替换模式,使用全局修饰符匹配所有结果,使用文件进行替换和覆盖。要定位目录中的所有文件,可以执行以下操作:
find -type f -name "*.log" exec sed -i s/{pattern}/{replacement}/g {};
从当前目录开始递归查找条目,其中条目的类型是file,并且条目的名称以
.log
结尾,然后使用sed
将模式替换为每个匹配文件的内容。您可以通过以下问题找到如何获取
sed
和find
for Windows等工具:https://stackoverflow.com/a/127567/6277798