我需要一个文本处理工具,可以在巨大的文本文件(> 0.5 GB)上执行PER LINE的搜索和替换操作。可以是基于Windows或Linux。 (我不知道Linux中是否有类似流读取器/写入器的东西,但我觉得它是理想的解决方案。到目前为止,我尝试过的编辑器将整个文件加载到了数据库中。)
奖金问题:一种可以在每行基础上合并两个大文本的工具,用例如翼片
答案 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脚本知道这两个文件。