Как редактировать огромные текстовые (txt, csv) файлы весом в 100-10000 мб на слабом компьютере?
Когда я столкнулся с проблемой обработки больших файлов через обычные редакторы, то я начал искать подходящий софт. Обычно я пользуюсь notepad, но когда у меня файл, где миллион строк или более, то notepad уже не помогает, всё зависает.
Я нашел, кажется, 4-5 программ, но основных (для таких дел) вроде всего две - это EmEditor и UltraEdit, обе программы мне не подошли. Оперативная память на моем ПК - 4 гигабайта. Поэтому этот софт не позволял мне отредактировать действительно большой файл. Вернее, они вроде редактировали, но очень медленно. И, кажется, там был ограниченный функционал в бесплатной версии.
Поэтому, исходя из опыта, я решил, что стоит попробовать пойти другим путем. Взять и сделать простые скрипты под очень конкретные задачи:
1) дробление большого файла по строкам (такой софт есть и он неплохой, но я все равно выложу ещё один);
2) замена символов/слов в больших файлах весом в несколько гигабайт (если более 10 гб, то их можно поделить на части и обрабатывать по частям);
3) замена n-го x (указанный(ые) вами символ/ы) на y (также указанный(ые) вами символ/ы)
Замена символов/слов работает в простом режиме, то есть что-то сложное заменить вряд ли получится. Функционал там ограничен следующими возможностями: вы можете заменить какие-то символы во всем документе, вы можете заменить какие-то символы только вначале каждой строки (например, у вас слово "Phone" встречается несколько раз в строке, а нужно удалить только вначале каждой строки - такое сделать можно) и вы можете заменить какие-то символы в конце каждой строки. Если будет относительно большой спрос на какие-то более сложные виды обработки данных файла, то я могу попробовать сделать, но пока выложу только упрощенную версию редактора.
Софт для обработки больших файлов
Я такое обычно делаю для себя, поэтому сразу снимаю с себя ответственность, если там что-то будет работать не так, как должно. Я выкладываю все бесплатно, также прикладываю ссылку на virustotal.
Проверьте сначала работу софта на небольшом файле (возьмите из своей большой базы небольшую часть текста и на ней проверьте). Весит все мало, т. к. там даже интерфейса нет, вам нужно только ввести необходимые данные для обработки и все. Все файлы, которые вы хотите обрабатывать - должны обязательно находиться в папке с софтом. Софт работает очень быстро (сравниваю с обычными редакторами).
Как разделить огромный txt/csv файл на несколько частей максимально быстро?
Первая программа (easy-split) делит большие текстовые файлы на части по строкам (а не по весу).
Скорость: txt файл весом 6 гб был разделен на 181 часть (каждая примерно по 34 мб), разделение шло по строкам (500 000 строк в каждой части), процесс занял 7 минут.
Скачать программу можно тут: https://mega.nz/file/x2EUwBQR#mSKFqcHtsvd6PVyb_09vLNf73DAy-XsEfI1VZwPmFhw
Делить большие файлы на части нужно для более быстрой обработки данных (в некоторых случаях).
Как заменить символы/слова в огромном txt/csv файле максимально быстро?
Вторая программа делает замену символов в больших файлах (которые тот же notepad может даже не отобразить).
Скорость: txt файл весом 6 гб был обработан также за 7 минут.
Скачать программу можно тут: https://mega.nz/file/knFABSyZ#BMfhT4-gSWuL6pN9gQ7tVqbYgN0hTROtbPxEAXGBiuQ
Как заменить n-ый x на y в большом txt/csv файле?
Третья программа меняет n-ый x на y, пример того, как это работает покажу ниже.
Фамилия, Имя, Отчество, Дата, Город
Бехтерева, Дарья, Дмитриевна, 20.05.1990, Тамбов
Строганов, Павел, Алексеевич, 10.02.1980, Иркутск
Если мы ставим n как "2", x как ",", y как "" (оставляем пустым), то мы получим:
Фамилия, Имя Отчество, Дата, Город
Бехтерева, Дарья Дмитриевна, 20.05.1990, Тамбов
Строганов, Павел Алексеевич, 10.02.1980, Иркутск
Скорость: txt файл весом 700 мб был обработан за 4 минуты.
Скачать программу можно тут: https://mega.nz/file/E3tVXBgJ#3kY-LVs2Hy6OKtV-rh2kEMKKojrhQu3d_3RAcjpysnI