搜索和;替换大文本文件

时间:2014-02-14 16:23:50

标签: text-files text-processing

我需要一个文本处理工具,可以在巨大的文本文件(> 0.5 GB)上执行PER LINE的搜索和替换操作。可以是基于Windows或Linux。 (我不知道Linux中是否有类似流读取器/写入器的东西,但我觉得它是理想的解决方案。到目前为止,我尝试过的编辑器将整个文件加载到了数据库中。)

奖金问题:一种可以在每行基础上合并两个大文本的工具,用例如翼片

3 个答案:

答案 0 :(得分:1)

听起来你想要sed。例如,

sed 's/foo/bar/' < big-input-file > big-output-file

应在foo的每一行中替换bar的第big-input-file次,并将结果写入big-output-file

奖励回答:我刚刚了解了paste,这似乎正是您想要的奖金问题。

答案 1 :(得分:1)

'sed'内置于Linux / Unix中,可用于Windows。我相信它一次只加载一个缓冲区(而不是整个文件) - 你可以尝试一下。

你想用合并做什么 - 以某种方式交错,而不仅仅是连接?

添加:interleave.pl

use strict;
use warnings;

my $B;

open INA, $ARGV[0];
open INB, $ARGV[1];

while (<INA>) {
  print $_;
  $B = <INB>;
  print $B;
}

close INA;
close INB;

运行:perl interleave.pl fileA fileB&gt; mergedFile

请注意,这是一个非常简单的实用程序。它不检查文件是否存在,并且它期望文件具有相同的行数。

答案 2 :(得分:0)

我会使用perl。逐行读取文件很容易,使用正则表达式可以获得很好的搜索/ repace,并且可以让你合并,并且可以使你的perl脚本知道这两个文件。