2

У меня есть пример больших текстовых файлов (некоторые мега), и я хотел бы знать, как, если есть более эффективный способ применения регулярных выражений, чем PyCharm или SublimText 2 на Mac OSX.

Благодарю.

Комментарий: хочу заменить вещи не только поиском. Пример будет приветствоваться.

2 ответа2

3

Самый эффективный способ поиска - это grep или ag , например:

grep -E "pattern" files

Наиболее эффективный способ заменить это sed , например:

sed -e "s/pattern/replacement/g" <input.txt >output.txt

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

ОБНОВИТЬ

Изучив файл, на который вы ссылаетесь, я понимаю, что использование grep или любых других текстовых утилит на самом деле является неправильным подходом - это несжатый файл размером 150 МБ, который на самом деле представляет собой данные CSV. Вместо этого я рекомендую импортировать эти данные CSV в какую-то базу данных. Я думаю, что для ваших целей SQLite будет работать лучше, но вы также можете использовать большие базы данных, такие как PostgreSQL или MySQL. Ключом к быстрому поиску является создание индексов для искомых полей.

0

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

Самый эффективный способ, который я знаю, это grep search_expression hugefile

чем PyCharm или SublimText 2 на Mac OSX

Это текстовые редакторы, не все текстовые редакторы оптимизированы для поиска в больших текстовых файлах. Это не их основная работа. Они могут выполнять много разборов (например, для обнаружения и выделения синтаксиса) и другую работу, которая не имеет отношения к вашей задаче.

Часто бывает так, что небольшие специализированные инструменты могут превзойти инструменты более общего назначения.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .