Classifique uma lista de nomes de arquivos em ordem alfabética, mas agrupados por sua extensão

0

Eu tenho um arquivo de texto que contém nomes de arquivo com sua extensão.

apple.c
orange.hpp
plum.h
mango.c
banana.cpp
grapes.hpp

Eu quero o texto acima classificado em ordem alfabética, mas agrupado com base em suas extensões: ou seja,

apple.c
mango.c
banana.cpp
plum.h
grapes.hpp
orange.hpp

Como posso fazer isso no Notepad ++?

Eu tentei o plugin TextFX, o Plugin Linesort e o editor de colunas. O plugin Linesort tem uma opção para ordenar as linhas da direita, mas a saída ainda não está correta.

    
por angaraja 28.12.2016 / 14:02

2 respostas

2

Existe um plugin "SQL". Requer um cabeçalho para ser usado corretamente. Eu adicionei o cabeçalho para que o texto agora se pareça com o seguinte

COLUMN1.COLUMN2
apple.c
orange.hpp
plum.h
mango.c
banana.cpp
grapes.hpp

Escolha o menu N ++ - > Plugins - > SQL - > Comece

Instrução SQL : SELECT COLUMN1 c1, COLUMN2 c2 FROM dados ORDER BY c2, c1
Delimitador :.

Clique no botão "executar SQL".

Um novo arquivo será criado com este conteúdo:

SQL Plugin 1.0.1025
Query         : select column1 c1,column2 c2 from data order by c2,c1
Sourcefile    : new 6
Delimiter     : .
Number of hits: 6
===================================================================================
Query result:
apple.c
mango.c
banana.cpp
plum.h
grapes.hpp
orange.hpp
    
por 03.01.2017 / 13:04
0

Além dos plugins não padronizados, também existe uma maneira de usar o plugin TextFX padrão que muitos usuários encontram com o N ++. Não é incrivelmente elegante, mas funciona:

apple.c
orange.hpp
plum.h
mango.c
banana.cpp
grapes.hpp
  1. Use localizar / substituir para preceder extensões antes dos nomes dos arquivos
    • Encontre o que: ^(.*\.(.*))$
    • Substituir por: \t
    • Modo de pesquisa: Expressão regular
    • ". matches newline": desmarcada
c   apple.c
hpp orange.hpp
h   plum.h
c   mango.c
cpp banana.cpp
hpp grapes.hpp
  1. TextFX > Ferramentas do TextFX > Ordenar linhas sensíveis a maiúsculas e minúsculas (ou Insensíveis )
c   apple.c
c   mango.c
cpp banana.cpp
h   plum.h
hpp grapes.hpp
hpp orange.hpp
  1. Use localizar / substituir para remover a coluna temporária
    • Encontre o que: ^.*\t(.*)$
    • Substituir por:
    • Modo de pesquisa: Expressão regular
    • ". matches newline": desmarcada
apple.c
mango.c
banana.cpp
plum.h
grapes.hpp
orange.hpp
    
por 03.01.2017 / 14:09