如何将正则表达式应用于大型文本文件?

如何将正则表达式应用于大型文本文件?

我有大型文本文件(有些是大型)例子我想知道是否有比在 Mac OSX 上使用 PyCharm 或 SublimText 2 更有效的方法来应用正则表达式。

谢谢。

评论:我想替换的东西不仅仅是搜索。欢迎举个例子。

答案1

最有效的搜索方式grep可能是ag,像这样:

grep -E "pattern" files

最有效的替换方式是sed,如下所示:

sed -e "s/pattern/replacement/g" <input.txt >output.txt

但是,这些方法要求您使用命令行,而不是花哨的 GUI。

更新

查看您链接的文件后,我意识到使用 grep 或任何其他基于文本的实用程序实际上是错误的方法 - 此文件未压缩时为 150MB,实际上是 CSV 数据。相反,我建议将此 CSV 数据导入某种数据库。对于您的目的,我认为 SQLite 效果最好,但您也可以使用更大的数据库,如 PostgreSQL 或 MySQL。获得非常快速搜索的关键是在要搜索的字段上创建索引。

答案2

将正则表达式应用于大型文本文件的更有效的方法?

我知道的最有效的方法是grep search_expression hugefile

比 Mac OSX 上的 PyCharm 或 SublimText 2

这些都是文本编辑器,并非所有文本编辑器都针对在大型文本文件中进行搜索进行了优化。这不是它们的主要工作。它们可能会执行大量解析(例如语法检测和突出显示)和其他与您的任务无关的工作。

通常情况下,小型专用工具的表现要优于通用工具。

相关内容