MacOS在巨大的文本文件中完成搜索并输出结果(找到TextPipe的解决方案)

时间:2019-06-06 08:48:03

标签: macos search vim terminal

我有一个文本文件ar。 50 GB大小。 我曾经通过TextPipe处理它,但是atm只有mac可用,没有TextPipe访问。 是否可以在此文件中启动正则表达式搜索,并在每条匹配的行中将结果保存到其他文件中而获得良好的结果? 我当时在考虑vim编辑器,但对在哪里搜索一无所知。 将不胜感激任何建议。

作为一个示例,假设我的initial.txt文件中包含以下代码,并且我想在“ processed.txt”行中保存带有“ Lorem”的行。

Lorem ipsum dolor坐在amet,安全adipisicing精英,sed do eiusmod 临时劳动者和劳动者联合会。 Ut enim ad minim veniam, quis nostrud exercitation ullamco Laboris ni ut aliquip ex ea commodo 结果。 Duis aute irure dolor in reprehenderit in voltate velit esse 西拉姆·杜洛尔·欧·富贾特圣人occaecat cupidatat非 偶然发生在犯罪现场的事实。 洛雷姆·伊普苏姆·多洛尔(Lorem ipsum dolor) 临时劳动者和劳动者联合会。 Ut enim ad minim veniam, quis nostrud exercitation ullamco Laboris ni ut aliquip ex ea commodo 结果。 Duis aute irure dolor in reprehenderit in voltate velit esse 西拉姆·杜洛尔·欧·富贾特圣人occaecat cupidatat非 偶然发生在犯罪现场的事实。 洛雷姆·伊普苏姆·多洛尔(Lorem ipsum dolor) 临时劳动者和劳动者联合会。 Ut enim ad minim veniam, quis nostrud exercitation ullamco Laboris ni ut aliquip ex ea commodo 结果。 Duis aute irure dolor in reprehenderit in voltate velit esse 西拉姆·杜洛尔·欧·富贾特圣人occaecat cupidatat非 偶然发生在动产犯罪的罪魁祸首。

2 个答案:

答案 0 :(得分:1)

对于固定字符串,请使用fgrep

fgrep Lorem initial.txt > processed.txt

对于正则表达式,请使用grepegrep(它们的regexp语法略有不同)。

答案 1 :(得分:1)

Vim与其他文本处理工具(例如sedgrep在“遗传上”相关。而且它还具有嵌入式的复杂脚本语言,因此完全可以处理批处理文本。

但是Vim是一个交互式文本编辑器,因此仅将其用作awkgrep的替代品会感觉有些错误。但是,如果您要学习并将其用于编辑和脚本编写,那么它是优雅而强大的。

要了解Vim,可以按以下方法解决您的问题(在正常模式下键入':'会自动切换到命令模式):

:e initial.txt
:g/Lorem/.w! >>processed.txt
  

我当时在考虑vim编辑器,但是对在哪里搜索没有足够的了解。将不胜感激。

Vim的主要问题是您必须从头开始,即学习如何打开,编辑和保存文件,以及如何正确退出应用程序。因此,您应该下载并安装它并运行vimtutor。接下来,您应该习惯Vim的嵌入式帮助系统(:h user-manual),这是迄今为止Vim最好的功能。

如果您需要更多书籍和教程,则可以从here开始。恕我直言,Steve Oualline的“ Vi IMproved”仍然是初学者的最佳选择。强烈建议Drew Neil的“ Practical Vim”用于高级Vimmer。