Вы могли бы достичь этого Sublime Text 2 (или любого редактора с полной поддержкой регулярных выражений - НЕ Notepad++, к сожалению) с помощью регулярного поиска и замены.
Найти:
^(([^\n]+\n)*)([^\n]+)\n(([^\n]+\n)*)\3(\n.*)*$
Заменить:
\1\4\3\6
Продолжайте нажимать "заменить", пока повторяющиеся строки не будут удалены из документа. "Заменить все" здесь не сработает (или вам придется нажимать его несколько раз).
Нашел более простое решение, которое работает как для Notepad++, так и для других редакторов. Найти в режиме регулярных выражений и отключить ". Соответствия новой строки":
^(.*)$\s+(?=(^.*$\s+)*\1)
И заменить ничем. Это основано на ответе @ stema ниже, но работает, даже когда совпадающие строки являются подстроками следующих строк:
1st January 2013
//some text1
1st January 2013
//some text2
1st January 2013
//some text3
21st January 2013
Должен правильно вернуться
//some text1
//some text2
1st January 2013
//some text3
21st January 2013