我需要一个文本处理工具,可以在巨大文本文件(> 0.5 GB)上执行每行搜索和替换操作。可以是基于Windows或Linux的。 (我不知道在Linux中是否有像Streamreader/Writer这样的东西,但是我有一种感觉,那就是理想的解决方案。至此我尝试过的编辑器会将整个文件加载到momory中。)搜索和替换巨大的文本文件
奖金问题:一种工具,可以合并两个巨大的文本每行的基础上,用例如分隔标签
我需要一个文本处理工具,可以在巨大文本文件(> 0.5 GB)上执行每行搜索和替换操作。可以是基于Windows或Linux的。 (我不知道在Linux中是否有像Streamreader/Writer这样的东西,但是我有一种感觉,那就是理想的解决方案。至此我尝试过的编辑器会将整个文件加载到momory中。)搜索和替换巨大的文本文件
奖金问题:一种工具,可以合并两个巨大的文本每行的基础上,用例如分隔标签
听起来像你想sed。例如,
sed 's/foo/bar/' < big-input-file > big-output-file
应的big-input-file
每一行由bar
取代的foo
的第一次出现,把结果写入big-output-file
。
红利回答:我刚刚了解到paste,这似乎正是你想要的红利问题。
'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> mergedFile
请注意,这是一个非常裸机效用。它不检查文件是否存在,并且它期望文件具有相同的行数。
我会用perl来做这个。一行一行地读取文件很容易,使用正则表达式有很好的搜索/重新使用空间,并且可以让你合并,并且你可以让你的perl脚本知道这两个文件。
谢谢,我会学习PERL的一些时间..但现在不是:) –
这是我学到的第一门语言,这是我对所有事情的答案;) – user1717259
我有我需要编写的天气预报模型。你用Perl做的,我会在FORTRAN做的,我们会比较性能:) Perl可以很好地做很多事情,但它并不是最好的。 –
我想从两个单语语料库中创建一个双语(并行)语料库。 –
所以这将是“A的一行,B的一行,A的一行,B的一行,......”?我不认为有内置任何东西可以做到这一点,但正如下面提到的,像Perl这样的东西可以在几行内完成。如果这就是你想要的,我们可以给你Perl代码来做到这一点。您只需确保安装了Perl。 –
正是。我知道我必须学习这个PERL ...... 谢谢 –