我需要一個文本處理工具,可以在巨大文本文件(> 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 ...... 謝謝 –