среда, 14 декабря 2011 г.

Программа для удаления одинаковых строк из текстовых файлов

Понадобилось как-то удалить дубликаты в куче очень больших txt, больше 20 миллионов строк у всех, так что KeyWordKeeper'ом не получилось, ну и недолго думая, я написал на C# простенький скрипт для этого, тупо используя стандартный Array.Sort()

Тут конечно есть недостаток (или достоинство) - результат получается отсортированный по алфавиту, но мне например это не важно. Еще отличие от kwk - повторы сохраняются в отдельный файлик.

Сегодня причесал немного скрипт, добавил автоопределение кодировки (входящие файлы могут быть или в win1251 или utf-8) и вот решил выложить.

Собственно, скрипт качать здесь
(жмем там кнопочку download и получаем bat-файл)

Как пользоваться:
- передать батнику файл аргументом (берем свой текстовый файл и просто пересовываем его мышкой на smf_sortcleaner.bat в проводнике windows), все остальное он сам сделает и создаст в папке с собой два файла, очищенный и повторы. А если просто запустить скрипт, без аргументов в смысле, то он обработает все .txt в папке с собой.

Требует для работы .net framework 2.
Исходный код открыт, можете переписывать под себя хоть в блокноте.