Existe uma maneira de extrair linhas duplicadas no Sublime Text?

4

Eu preciso executar duas operações no Sublime Text: extrair linhas exclusivas e extrair linhas duplicadas. Por exemplo, para entrada

a
b
a

Extrair duplicatas devem resultar em:

a

e Extract unique devem resultar em:

b

Existe uma operação integrada ou um plug-in para fazer isso?

    
por Poma 22.10.2016 / 08:51

4 respostas

6

Você pode encontrar facilmente linhas duplicadas executando Sort Lines e pesquisando esse regex que usa marcadores de limite de linha ^ e $ e a referência de retorno .

^(.+)$\n^$

Siga isso com Localizar tudo, Copiar, Colar em uma nova guia, Permute linhas | Único e você os extraiu.

    
por 09.02.2018 / 22:40
1

Infelizmente, não tenho acesso ao Sublime Text no momento, por isso não posso testar isso, mas acredito que algo como o seguinte possa funcionar para você:

  1. Classifique as linhas por meio do comando Edit -> Sort Lines
  2. Instale o plug-in Realce Duplicatas e use-o para realçar todas as linhas duplicadas
  3. Corte as linhas destacadas na área de transferência e cole-as em um novo arquivo
  4. As linhas que permanecem no arquivo original são suas linhas Extrair
  5. No Novo arquivo, selecione todo o texto e remova as linhas duplicadas por meio do comando Edit -> Permute Lines -> Unique
  6. As linhas que permanecem no Novo arquivo são suas linhas Extrair duplicatas

Não tenho certeza absoluta de que o passo 1 é realmente necessário, mas incluí-lo apenas no caso.

    
por 22.10.2016 / 09:56
0

Responda @MJH ligeiramente modificada acima para obter linhas duplicadas com Sublime 3 e DiffMerge, sem usar Highlight Duplicates plugin.

  1. Classifique as linhas via Sublime 3 Edit -> Sort Lines command
  2. Salve o arquivo original como sorted_orig.txt
  3. Selecione todo o texto e remova as linhas duplicadas via Sublime 3 Edit -> Permute Lines -> Unique command
  4. Salve o arquivo modificado como no_dup_sorted.txt
  5. Inicie o diff com a ferramenta DiffMerge com os arquivos sorted_orig.txt e no_dup_sorted.txt .
  6. Use Export -> File Diffs no DiffMerge para obter uma lista de duplicatas na área de transferência ou salve em outro arquivo.
por 14.03.2017 / 14:20
0

Tive o mesmo problema (mostre-me os enganos) ... não encontrei uma resposta fácil baseada no Sublime e voltei a usar os comandos do Unix (meu arquivo tinha os dados que eu queria encontrar os duplicados nas colunas 11- 56):

cut -c 11-56 myfile.dat | sort | uniq -d

Postado aqui como um FYI para os outros.

    
por 25.02.2018 / 19:37