2014-12-23 6 views
-1

У меня есть большой текстовый файл (3 МБ более 50 000 строк), и я бы хотел выполнить фильтр на нем.Фильтрация больших текстовых файлов

Я вижу, что это вполне возможно сделать на машине Linux, но я не знаю, как это сделать, чтобы фильтровать его на окнах.

Я бы хотел, чтобы каждая строка, содержащая указанную строку (например, cake), была скопирована в новый текстовый файл - просто так. Я просто понятия не имею.

Спасибо :)

+0

Если вы знакомы с Никс среды, попробуйте «Cygwin» ... – MJSG

+0

Возможная дубликата [Фильтр текстового файла в новый текстовый файл] (http://stackoverflow.com/ Вопросы/8297706/filter-a-text-file-in-a-new-text-file) – Wolf

+0

Этот размер '3MB более 50 000' можно считать« большим »для интерактивной фильтрации, но он действительно мал для автоматической фильтрации , См. [Большая поддержка файлов - Википедия] (https://en.wikipedia.org/wiki/Large_file_support) – Wolf

ответ

1

Вы можете использовать find команду MS-DOS с перенаправлением. Например:

find "cake" yourfile.txt > output.txt 

Вам нужно будет выполнить строку в каталоге, где находится ваш большой текстовый файл.

Источник: http://ss64.com/nt/find.html

+0

Вау, не знал, что смогу сделать это в CMD. Спасибо, что сработало :) – Cherona

0

C# с Visual Studio.

c# search string in txt file

int counter = 0; 
string current; 
string[] cakeLines; 

System.IO.StreamReader file = new System.IO.StreamReader("c:\\test.txt"); 
System.IO.StreamReader file2 = new System.IO.StreamReader("c:\\test2.txt"); 
while((current = file.ReadLine()) != null) 
{ 
    if (current.Contains("cake")) 
    { 
     cakeLines[counter] = current; 
     file2.WriteLine(cakeLines[counter]); 
    } 

    counter++; 
} 

file.Close(); 
file2.Close(); 
Смежные вопросы