Text Duplicate Killer – утилита для удаления из списка повторяющихся строк

Text Duplicate Killer

Text Duplicate Killer – программа, предназначенная для удаления из текста повторяющихся строк (не обязательно смежных). В результате создается новый текстовый файл, в котором каждая строка встречается только один раз.

Как найти дубликаты

1. У Вас должен быть готов файл формата ASCII, содержащий текст, в котором Вы хотите удалить дублирующиеся строки. Если Вам нужно обработать текст из файлов DOC или RTF, то экспортируйте его в ASCII.

2. После запуска утилиты tdk.exe выберите пункт меню Файл|Открыть исходный файл и укажите файл, в котором необходимо удалить дубликаты.

3. Затем с помощью пункта меню Файл|Задать целевой файл укажите имя нового файла. В этот файл утилита поместит обработанный текст, который уже не будет содержать дубликатов. Вы можете автоматически создать новое имя. Для этого нажмите кнопку с “волшебной палочкой”.

4. Для запуска процесса поиска и удаления дубликатов выберите пункт меню Операции|Убрать дубликаты!. В любой момент Вы можете прервать работу, нажав на кнопку Стоп, находящуюся в правом нижнем углу. При большом объеме текста обработка может занять некоторое время.

Имя целевого файла

Имя целевого файла можно создать автоматически, нажав на кнопку “волшебная палочка”. В автоматически созданном имени кодируются некоторые настройки.

Ниже приведены примеры:

Имя исходного файла: test.txt

Варианты автоматически создаваемого имени целевого файла:
test.txt.no_dupes_w_i.txt – конец строки формата Windows (CR/LF), игнорировать регистр
test.txt.no_dupes_u_i.txt – конец строки формата Unix (LF), игнорировать регистр
test.txt.no_dupes_w.txt – конец строки формата Windows (CR/LF), не игнорировать регистр
test.txt.no_dupes_u.txt – конец строки формата Unix (LF), не игнорировать регистр

Внимание! В случае, если файл с целевым именем уже существует, он перезапишется без запроса.

Допустимые форматы файлов

Text Duplicate Killer корректно обрабатывает только текстовые файлы формата ASCII.

Чтобы обработать документы Microsoft Word и прочие файлы, имеющие сложную структуру, необходимо экспортировать их в формат ASCII.

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

Параметры командной строки

Формат параметров командной строки:

tdk.exe [/teol=w|u] [/ic+|-] [/ios+|-] [/h=1|2|3|4|5|6] [/so=desc|asc]
[/s=none|char|len|loc] [/in=] [/out=] | [/?]

Описание параметров:

/teol=w – установить для целевого файла конец строки в Windows-формате (#13#10)
/teol=u – установить для целевого файла конец строки в Unix-формате (#10)

/ic+ – игнорировать регистр (только для латинских букв!)
/ic- – учитывать регистр (только для латинских букв!)

/ios+ - игнорировать обрамляющие пробелы
/ios- – учитывать обрамляющие пробелы

/h=X – установить “степень” хеширования равной X символам. X = 1..6

/so=desc – установить для сортировки обратный порядок/по убыванию
/so=asc – установить для сортировки прямой порядок/по возрастанию

/s=none – без сортировки целевого текста
/s=loc – сортировка по национальному алфавиту
/s=char – сортировка по кодам символов
/s=len – сортировка по длине строки

/in= – имя исходного файла (ASCII)
/out= – имя нового файла. TDK создает этот файл на основе source, исключая повторяющиеся строки

/? - вывести справку по программе

Примеры:

tdk /in=file1.txt /out=file2.txt – удалить дубликаты из файла file1.txt и записать уникальные строки в файл file2.txt, используя текущие настройки программы.

tdk /ic+ /ios+ /so=asc /s=char /in=file1.txt /out=file2.txt

Примечания:

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

Параметры нечувствительны к регистру.
Параметры должны отделяться друг от друга как минимум одним пробелом!
Не используйте пробелы в именах файлов
Настройки, установленные с помощью параметров командной строки, запоминаются.

Меню

Меню / Файл
Открыть исходный файл – Позволяет выбрать исходный файл (формата ASCII).
Задать целевой файл
– Позволяет указать имя целевого файла, в который будут записываться уникальные строки из исходного файла. Тип конца строки (Unix/Windows) в целевом файле можно указать в опциях.

Меню / Вид
Хэш-данные – Эта опция позволяет включить отображение специфических сведений, например, скорость обработки.
Найденные дубликаты
– Данная опция позволяет включить отображение окна с экземплярами найденных дубликатов. Например, если в тексте будет найдено 10 дубликатов одной строки, то каждый экземпляр добавиться в это окно. При обработке больших текстов рекомендуется отключать отображение этого окна, поскольку найденные дубликаты могут переполнить оперативную память.

Меню / Опции
Целевой EOL = CR/LF (Windows) – Установить в целевом файле конец строки как CR/LF.
Целевой EOL = LF (Unix) – Установить в целевом файле конец строки как LF.

Игнорировать регистр (латиница) – Данная опция указывает, что регистр латинских букв не учитывается. В этом случае, например, строки String, string и STRING будут рассматриваться как дубликаты.
Игнорировать ведущие и конечные пробелы – При сравнении строк не учитываются “обрамляющие” пробелы. Например, при включенной опции, строки “текст” и ” текст ” будут считаться дубликатами. Внимание: в целевом тексте пробелы не отсекаются!

Без сортировки целевого текста – Строки целевого текста не сортируются.
Сортировка по национальному алфавиту – Сортировка национальных символов происходит с учетом настроек языка в операционной системе Windows.
Сортировка по кодам символов - Сортировка основана на кодах символов (Latin-1, т.е. расширенный 8-битный ASCII-код).
Сортировка по длине строки – Строки сортируются по длине (включая пробелы).

Сортировать в прямом порядке/по возрастанию – В зависимости от выбранного типа сортировки опция указывает либо на прямой алфавитный порядок, либо на возрастающий порядок кодов или длины строки.
Сортировать в обратном порядке/по убыванию – Аналогично предыдущей опции.

Хэшировать по N символов - Сколько первых символов использовать для хэширования. Данная настройка важна только в том случае, если вы обрабатываете очень большие файлы, не помещающиеся в оперативную память. Хэш-индекс основан на ASCII-коде, поэтому при хэшировании по одному символу максимальное количество сегментов равно 255. При использовании двух символов количество сегментов становится равным 65536. Так как программа “скидывает” сегменты на жесткий диск, то увеличение количества сегментов может существенно снизить требования к оперативной памяти, хотя нагрузка на дисковую систему увелчивается (и скорость работы соответственно). Если вам понадобилось изменить эту настройку, то определить нужное значение можно экспериментально, но учтите, что для разных текстов эффективность обработки может сильно различаться. По умолчанию установлено 3 символа – это некий компромисс между скоростью работы и требованиями к ОЗУ.

Установить первоначальные настройки – Команда устанавливает “заводские” настройки (в том числе положение и размер формы).

Скачать программу можно здесь http://www.rusdocs.com/tdk.rar


Comments (40)

PainterMay 28th, 2008 at 10:22 pm

спасибо, программа супер

МаксJune 28th, 2011 at 7:28 pm

Отличная программа. Спасибо автору.

MAGNATAugust 13th, 2011 at 5:12 pm

Отличный софт, то что надо! Спс автору

PavelFebruary 22nd, 2012 at 12:12 am

Не могу скачать по ссылке.
Может есть зеркало ?

adminFebruary 24th, 2012 at 3:43 pm

Обновил ссылку, качайте.

SeverMarch 23rd, 2012 at 2:11 am

Поработал, попробовал – ЗАМЕЧАТЕЛЬНАЯ программка !!!

ИгорьApril 25th, 2012 at 10:51 pm

Спасибо за программу, порадовало что она сразу выдает отсортированный по алфавиту файл. Спасибо!

олегMay 16th, 2012 at 5:57 am

да…….вещ полезная и незаменимая во всех планах!!!! попробуй ка ручками перелопатить текст)))))) молодца автор……побольшеб програмистов бы таких толковых!!!

ВладимирJune 11th, 2012 at 8:14 pm

Я получайник. Попробовал, но нужного результата на получил. Как найти опции, что бы программа подсвечивала совпадения. А потом самостоятельно удалить повторы. А так программа удалила совпадающие слова, заменив их на какое-то обозначение на английском. Подскажите как настроить программу на желаемое. Может это демо?

adminJune 12th, 2012 at 12:28 am

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

Вот так:

слово 1
слово 2
слово 3

… и так далее.

Прога отлично работает с txt файлами. Создайте текстовый файл в блокноте, скопируйте туда текст который хотите обработать, сохраните файл и работайте с ним.

Это не демо.

ЕвгенийJune 23rd, 2012 at 11:10 pm

Совершенно никаких действий!
На выходе – файл 0 байт.
Проверял на нескольких текст файлах с заведомо повторяющимися строками.
Настройки дефолтовые.

SeregaJuly 9th, 2012 at 10:13 pm

Прога – выше всяких похвал! 1100 строк за 2 секунды!
Автору большое спасибо.

adminJuly 9th, 2012 at 10:26 pm

Согласен. Прога просто зверь!
Есть еще программа на подобии, называется Sekator – умеет обрабатывать большие файлы, перемешивать строки и разрезать большие файлы со списками, на куски.

АнтонAugust 8th, 2012 at 7:59 am

Биг фенкс. Убрал дубликаты из навителовского файла Speedcam.txt =)

РоманFebruary 17th, 2013 at 1:57 pm

отлично! 10к строк обработала на ура!

АлмазFebruary 26th, 2013 at 7:00 am

отличная программа, список номеров 15000 строк и найдены все дубликаты около 600, сэкономил немного денег на СМС. Спасибо

ALikFebruary 28th, 2013 at 2:31 am

Prosto odno udovolystviya polyzovatsa etoy progoy….dva slova..BOLYSHOE SPASIBO

TilkerJune 3rd, 2013 at 2:04 pm

Программа зверь из 700 тысяч строк за 6 минут зделала 380 без повтора потом попробовал из 5 милионов делает 3 все отлично и ресурсы нежрет практически

АртёмJune 7th, 2013 at 1:58 am

медленный, я с него ушёл на “naRedup” 6 миллионов строк – 30 секунд

eufeufJune 25th, 2013 at 9:51 pm

Ну супер не супер, а вот у меня она текстовик весом 406 метров – 50 миллионов с лишнем строк, четверо суток ковыряла (4-х яд. проц по 2 Мг, 8 Гб оперативы). в итоге по окончанию процесса заявила ошибку мол не могу записать файл (целевой), типа он используется другой прогой – хотя она его даже и не создала. Текстовик весом в 1.5 Гб вообще не открывает…

eufeufJune 25th, 2013 at 9:56 pm

Буду пробовать в ASCII формате…

eufeufJune 30th, 2013 at 2:49 pm

В ASCII формате файл 1.1 Гб быстро (28 часов) просканировал, теперь килит дубли со скоростью 100 строк за 1.5 – 16 сек. – я состарюсь быстрей дабы строк в файле 118 миллионов с лишнем.

НиколайJuly 2nd, 2013 at 2:29 am

а вирусов нету?

adminJuly 3rd, 2013 at 3:58 am

нету

AndreyOctober 30th, 2013 at 8:19 pm

Можно ли настроить так чтобы удаляла не только повтор но и оригинал чтобы эту программу можно было использовать для сравнения тоесть остается уникальность текста или номера который не имеет дубликата пример: (текст)+(текст дубликат) получаемый результат удаляется (текст+текст дубликат) . Для чего это нужно для того чтобы сравнивать новую и старую базу и получаемый конечный результат состовлял только новое не имея дубликатов но и непосвторяя старых .

adminOctober 31st, 2013 at 1:20 am

нельзя

ElinsJanuary 9th, 2014 at 4:38 am

Автор молодец, софт действительно отличный, пригодился, увидел о нем пишут на вебмастерсе, попробовал, ожидал меньшего, а получил большего) Спасибо!

AnatolyFebruary 9th, 2014 at 9:31 pm

1.Создаю тектовый файл с разными словами, одно слово в каждой строке, делаю несколько одинаковых слов (строк).
2. Запускаю программу
3. Выбираю файл, который написал
4. Выбираю файл куда записать результат без дублей
5. Нажимаю: Операции – Убрать дубликаты!
поидее галочка должна стоять, а программа сразу начинает свою работу

через некоторое время получаю ПУСТОЙ файл на выходе (который указан в п.4.)

6. Подключил большой файл, запустил. Программа не пишет скорость обработки 100 строк. Программа спрашивала: Отображать статистику? Я сказал ДА.

SergeyMarch 15th, 2014 at 6:38 pm

Можно ли чуток подправить. Надо сделать чтоб удаляла не только совпадение 100% строчки, но и совпадение по 1 – 3….. символа. Если сделаете дайте знать на мыло.

graphmanApril 14th, 2014 at 7:56 pm

При выключенной сортировке – все равно сортиоует :-(

PakaAugust 31st, 2014 at 4:45 pm

Доброго времени суток. Помогите выполнить задачу у меня есть строки с кучей url-ов но в они не идентичны например google.com/1, google.com/2, google.com/3. Можно ли настроить так что бы программа брала только первые 5-10 символов домена и уже считала дублем остальной кусок строки. Что бы у меня в конце остался только google.com/1?

ИльяDecember 2nd, 2014 at 7:55 pm

Здравствуйте. У меня та же проблема, что и у Paka. Тоже нужно обработать огромное количество названий урлов, но прога не считает их дубликатами(( В тоже время, например Ворд при комбинации клавиш Ctrl + F ищет неполные дубликаты, но по одному так искать очень долго.

Юдинцев АртемJuly 19th, 2015 at 7:13 pm

Отзывы, сответсвуют полезности и нужности программы! Просто супер! Жаль нет пакетного режима обработки, а так вообще помогло , именно то что нужно.

РоманOctober 19th, 2015 at 4:33 pm

С китайским не работает? Файл небольшой — 129 строк, 1752 kb. Вроде бы обрабатывает, но, когда сохраняет файл “без дубликатов”, то там уже не иероглифы, а какие-то закорючки. Кодировка UTF-16 LE.

adminOctober 25th, 2015 at 11:52 pm

Роман, попробуйте KeyWordKeeper – http://www.rusdocs.com/razrezat-tekstovyj-fajl-txt-na-chasti-ili-po-strokam

adminOctober 26th, 2015 at 12:19 am

Программа Text Duplicate Killer уже устарела.

Для поиска и удаления дубликатов рекомендую использовать прогу KeyWordKeeper http://www.rusdocs.com/razrezat-tekstovyj-fajl-txt-na-chasti-ili-po-strokam
Она работает намного быстрее а также умеет делить файлы на равные куски по количеству строк\файлов, перемешивать строки, чистить, сортировать строки по алфавиту, объединять файлы, делать выборки и др.

mvAugust 11th, 2016 at 11:34 am

не видел программку, но как разработчику тебе м.б. интересно:
“Хэш-данные” – смысел только для разработчика
“Сортировка по национальному алфавиту” [или] “Сортировка по кодам символов” – правельнее так
“Хэшировать по N символов” – разве программка не может определять быстрейший вариант?
Кстате расскажу чем пару дней назад занимался, делал поиск символа до 0, D или A (которые 0, 13 и 10),
после оптимизаций, ради смеха испытал табличный метод – оказалось в 5 раз быстрее по сравнению с прямыми сравнениями !!!
Дело в том, что доступ к кэшированной памяти (таблица) с кодесом пересекающим меньше кэш-линий оказался быстрее,
чем прямые команды раскинутые по разным кэш-линиям. Эта на Коре i5 тестировал.

PrinceOctober 8th, 2016 at 9:36 pm

До этого делал сортировку словарей и удаление дубликатов на bash, но поскольку компьютер для линукс слабенький, на больших словарях процедера растягивалась на десятки часов.

Начал искать под виндовс, обрадовался, когда нашел этот Text Duplicate Killer, сначала обрадовался, но когда прочел это -

[!] При сортировке целевой файл полностью загружается в оперативную
память! Учитывая это, для потенциально больших целевых файлов лучше
отключать сортировку.

- понял, что и он бесполезен, гед я найду оперативку на 100 ГБ.
А без сортировки оно и нафиг не нужно.

AndroSeptember 8th, 2017 at 8:55 am

Эта ваша утилита не умеет считать проценты.. у меня уже на 130% подготовилась, при этом обнаружив только около 10% от общего количества строк. Я так понимаю, полностью программа подготовится когда значение дойдет до 1000%? =)
и полностью согласен с предыдущим комментарием, работать с большими файлами не реально

СергейSeptember 22nd, 2017 at 11:35 am

Файл на 500кб, 45тыс строк обрабатывало полчаса. При этом при сохранении все равно отсортировало, а мне этого не нужно, нужно чтобы сохраняло строки в таком же порядке, как и в исходном файле, удаляя при этом дубли, но увы. В KeyWordKeeper такая функция есть, но зато не учитывает регистр. Печалька(

Оставить комментарий

Ваш комментарий