Блокнот++ проверяет наличие повторяющихся строк

Пример

40000+ строк с такими направляющими:

GUID: 0981723409871243

Поиск дубликатов по всем GUID

Пример:

GUID: 124432408213
GUID: 08917234071423
GUID: 0189742381
GUID: 08917234071423
GUID: 0817423423
GUID: 124432408213

У меня есть TextFX и Compare но как мне найти эту часть там 2 124432408213 и 2 08917234071423

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

Это должно быть что-то вроде GUID: «Искать текст после guid» в следующей строке, затем продолжить поиск для каждого GUID... Я мог бы написать пользовательскую программу, которая может это сделать, но... пытаться избежать этого TextFX довольно мощный, просто не вижу способа сделать что-то подобное...

Я должен добавить немного больше информации здесь пример:

[блок1] гид: ???? больше информации: ??? [/блок1]

так форматируется каждый блок..


person user2455808    schedule 05.06.2013    source источник


Ответы (2)


Используйте TextFx для сортировки входных строк и сохранения дубликатов. Затем выполните поиск по регулярному выражению, установив Строку закладок на вкладке Отметить. Текст поиска должен быть ^(GUID:\s*\d+\r\n)\1, затем нажмите Отметить все**. Затем используйте Меню => Поиск => Закладка => Удалить непомеченные строки, чтобы удалить все, кроме дубликатов, или используйте Меню => Поиск => Закладка => Скопировать строки с закладками и вставить строки в нужное место. Если есть четыре или более одинаковых строк, то вышеприведенное может закончиться одной записью для каждой пары, другая сортировка TextFX, удаляющая дубликаты, должна удалить избыток.

Для случая [block1] guid: ???? more info: ??? [/block1] регулярное выражение более сложное, но ^(\[block1\] guid:\s*\d+ more info:\s*\d+ \[/block1\]\r\n)\1 находит и помечает дубликаты в:

[block1] guid: 1234 more info: 5678 [/block1]
[block1] guid: 1235 more info: 5678 [/block1]
[block1] guid: 1235 more info: 5678 [/block1]
[block1] guid: 1236 more info: 5678 [/block1]
[block1] guid: 1236 more info: 5678 [/block1]

В Linux или аналогичной системе такие команды, как sort -c inputFileName | grep -v "^\s*1\s", sort inputFileName | unic -c | grep -v "^\s*1\s" или sort inputFileName | uniq -d, должны работать в зависимости от того, какие именно команды и параметры доступны.

person AdrianHHH    schedule 05.06.2013
comment
К сожалению, это намного сложнее... [UNIT] ‹INTEGER64›GUID: единственное, что требует проверки на дублирование... ‹STRING›Name:?? ‹STRING›Файл: ??? ‹STRING›Тип Единицы:??? ‹BINARY›Неизвестно:?? [/ЕД. ИЗМ] - person user2455808; 06.06.2013
comment
@user2455808 user2455808 так в чем твой вопрос? Если это сложнее, покажите некоторые фактические данные и требуемый результат. Четко объясните, какие биты нужно проверять, а какие можно игнорировать. - person AdrianHHH; 06.06.2013
comment
Это нормально, вместо этого я пишу программу ... вы, вероятно, правы и знаете, как делать то, что мне нужно, но я вообще не знаком с командами на основе Linux :(... - person user2455808; 08.06.2013

Хотя мой ответ пока не может вам помочь ... Скопируйте свои строки на 2 вкладки новостей, затем используйте TextFX, чтобы дублировать вкладку сортировки 1 и уникальную вкладку сортировки 2. Затем переместите вкладку 2 в другое представление, наконец, используйте Сравнить.

person becon999    schedule 03.02.2014
comment
Спасибо. Когда вы говорите, наконец, использовать Compare, вы имеете в виду сравнение в Notepad++? Если да, то где? - person RockPaperLz- Mask it or Casket; 06.04.2019