2016-02-08 2 views
-1

У меня есть огромный список, как в примере ниже, и вам нужно удалить строки 1,3,6 и 8, потому что они частично дублируются, поэтому мне нужно поддерживать самую длинную строку.удалить частичные повторяющиеся строки из текстового файла блокнот ++

 
COMPAQ PRESARIO A940ES NOTEBOOK PC 
COMPAQ PRESARIO A940ES NOTEBOOK PC - KU048EAR 
HP PAVILION DV7-1210EA NOTEBOOK PC 
HP PAVILION DV7-1210EA NOTEBOOK PC - NG385EA#ABU 
HP PAVILION DV7-1210EA NOTEBOOK PC - NG385EAR 
HP PAVILION DV7-1210ED NOTEBOOK PC 
HP PAVILION DV7-1210ED NOTEBOOK PC - NA048EA#ABH 
HP PAVILION DV7-1210ED NOTEBOOK PC - NA048EA

Окончательный результат, что мне нужно:

COMPAQ PRESARIO A940ES NOTEBOOK PC - KU048EAR 
HP PAVILION DV7-1210EA NOTEBOOK PC - NG385EA#ABU 
HP PAVILION DV7-1210EA NOTEBOOK PC - NG385EAR 
HP PAVILION DV7-1210ED NOTEBOOK PC - NA048EA#ABH

ответ

2

Если вам не нужно, чтобы сохранить исходную последовательность ваших линий, вы можете попробовать что-то вроде этого:

  • рода в линии с Edit -> Line Operations -> Sort Lines Лексикографически По возрастанию
  • убедитесь, что последняя строка заканчивается символом новой строки
  • Теперь мы делаем поиск/замена:
    • Найти Что:^(.*)\r\n(\1.*?\r\n)
    • Заменить:\2
    • Проверьте в нижнем левом углу: Regular Expression и . соответствует Newline
    • если ваши lineendings только \n: использовать \n вместо двух \r\n в Найти Что.
    • Hit Заменить или Заменить все, ударил его часто, до тех пор, пока не осталось ничего, чтобы заменить в строке состояния в диалоговом окне замены будет вам сказать.

Как это работает:

  1. Сортировку ставит дубликаты в последовательности и самый длинный «дублировать» является последним!
  2. В Find/Replace рассматриваются две линии, где первая строка является частью второй строки, а затем заменяет обе строки второй строкой. (Это означает, что если у вас есть три дубликата: первый Заменить все оставит вторую и третью линию стоящими, и вам понадобится другое Заменить все.)
+0

резервуары для ответа –