Если несколько экземпляров являются последовательными, вы можете сделать:
Обновление в соответствии с новым запросом:
- Ctrl+H
- Найти то, что:
^([^-]+- )(.+)(?:\R(?1)\2)+
- Заменить:
$2
- проверить обернуть
- проверьте регулярное выражение
- НЕ ПРОВЕРИТЬ
. matches newline
- Replace all
Объяснение:
^ : beginning of line ( : start group 1 [^-]+- : 1 or more NOT dash,then a dash and a space ) : end group 1 ( : start group 2 .+ : 1 or more any character ) : end group 2 (?: : start non capture group \R : any kind of linebreak (?1) : same pattern than group 1 (ie. "[^-]+- ") \2 : backreference to group 2 )+ : end non capture group, must appears 1 or more times.
Замена:
$2 : content of group 2
Результат для данного примера:
rdac checker reports path is down: ctlr is in startup sequence
Если несколько экземпляров не являются последовательными, лучше написать сценарий на вашем любимом языке сценариев.
Вот Perl One-Liner, который делает эту работу:
perl -aE 'chomp;(undef,$x)=split(/-/,$_);next if exists $s{$x};$s{$x}=1;say$x' inputfile