Se várias instâncias forem consecutivas, você pode fazer:
Atualize de acordo com a nova solicitação:
- Ctrl + H
- Encontre o que:
^([^-]+- )(.+)(?:\R(?1))+
- Substituir por:
$2
- check Embrulhe
- verificar expressão regular
- NÃO VERIFIQUE
. matches newline
- Substituir todos
Explicação:
^ : 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. "[^-]+- ")
: backreference to group 2
)+ : end non capture group, must appears 1 or more times.
Substituição:
$2 : content of group 2
Resultado para o exemplo dado:
rdac checker reports path is down: ctlr is in startup sequence
Se as múltiplas instâncias não forem consecutivas, é melhor escrever um script na sua linguagem de script favorita.
Aqui está um perl one-liner que faz o trabalho:
perl -aE 'chomp;(undef,$x)=split(/-/,$_);next if exists $s{$x};$s{$x}=1;say$x' inputfile