2014-02-14 5 views
0

Мне нужен инструмент обработки текста, который может выполнять операции поиска и замены PER LINE на HUGE TEXT FILES (> 0,5 ГБ). Может быть либо Windows, либо Linux. (Я не знаю, есть ли что-то вроде streamreader/writer в Linux, но у меня есть ощущение, что это будет идеальное решение. Редакторы, к которым я до сих пор загружаю весь файл в momory.)поиск и замена на огромные файлы txt

Бонусный вопрос: инструмент, который может MERGE два огромных текста на каждой строке, разделенных, например, вкладки

ответ

1

Похоже, вы хотите sed. Например,

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

должен заменить первое вхождение foo по bar в каждой строке big-input-file, записывая результаты в big-output-file.

Бонус ответ: Я только что узнал о paste, который, кажется, именно то, что вы хотите для своего бонусного вопроса.

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> mergedFile

Обратите внимание, что это очень скелетный утилит. Он не проверяет наличие файлов и ожидает, что файлы имеют одинаковое количество строк.

+0

Я хочу сделать двуязычный (параллельный) корпус из двух одноязычных корпусов. –

+0

Значит, это будет «одна линия от А, одна от Б, одна от А, одна от Б, ...»? Я не думаю, что для этого есть что-то встроенное, но, как упоминалось ниже, что-то вроде Perl может сделать это всего несколькими строками. Если это то, что вы хотите, мы могли бы предоставить вам код Perl для этого. Вам просто нужно убедиться, что Perl установлен. –

+0

Точно. Я вижу, что мне все равно придется изучить этот PERL ... thanks –

0

Я бы использовал perl для этого. Легко читать файл по строкам, имеет отличный поиск/репат, доступный с использованием регулярных выражений, и позволит вам объединиться, и вы можете сделать свой perl-скрипт осведомленным обо всех файлах.

+0

Спасибо, я узнаю PERL некоторое время .. но не сейчас :) –

+0

Это первый язык, который я узнал, и это мой ответ на все;) – user1717259

+0

У меня есть модель прогнозирования погоды, в которой я нуждаюсь. Вы делаете это в Perl, и я сделаю это в FORTRAN, и мы сравним производительность :) Perl может многое сделать хорошо, но это не лучшее для всего. –

Смежные вопросы