Como reordenar colunas delimitadas por canal no Notepad ++?

8

Estou tentando reposicionar todas as linhas em um arquivo .txt da seguinte maneira abaixo. No entanto, não tenho idéia de como fazê-lo. Isso é possível com o Notepad ++?

De
maçã|[email protected]|aranja
aipo| [email protected] |
sanduíche de repolho|[email protected]|turkey

Para
apple|orange|[email protected]
aipo|cabbage|[email protected]
sandwich|turkey|[email protected]

Lucyfer
fonte
Eu encontrei este, que eu nem sabia antes, mas parece super útil: Editar colunas no Notepad ++ com TextFX plug-in
MC10
Eu não chamaria isso de "linhas de reposicionamento".
Lightness Races in Orbit em

Respostas:

15

Reordenando Colunas em um Arquivo de Texto

Sim, isso é possível no vanilla Notepad++, embora, como observado, também existam plugins que o farão. Uma abordagem melhor (mais robusta) pode ser o uso de algumas ferramentas de processamento de texto da linha de comando, mas se você precisar de uma solução rápida e suja, poderá encontrar isso abaixo:

Assumindo sua entrada exata ( col1|col2|col3, delimitador de tubulação, sem entrada de tubulação col2):

Localizar :(.*?)\|(.*?)\|(.*)

Substitua :\1|\3|\2

funciona para mim aqui Notepad++, construído em janeiro de 2015. Um tanto brutal, mas funciona.

Explicação:

.* - corresponde a qualquer caractere (exceto nova linha), entre zero e tempo ilimitado

.*?- corresponde a qualquer caractere (exceto nova linha), conforme descrito acima, de maneira não gananciosa (ou seja, corresponde ao mínimo possível )

(.*)- Suportes de deslizamento denotam grupo captura de cima (para uso em Substituir como por exemplo \1, \2, \3etc)

\|- \escapa do pipe ( |) para corresponder literalmente

\1|\3|\2- imprime 1º grupo correspondente, canal, terceiro grupo correspondente, canal, segundo grupo correspondente

bertieb
fonte
Meu prazer, fico feliz que tenha ajudado você e espero que ajude outras pessoas :-) Não é necessário, mas você também pode clicar na marca de seleção para aceitar uma resposta se resolver o seu problema - você é livre para não, ou esperar também por melhores respostas adicionais!
bertieb
Você não precisa fazer o .*não ganancioso, ou seja, .*?para evitar muitos retrocessos?
Ex Umbris
@ExUmbris: normalmente a otimização começa quando a velocidade parece inadequado
nperson325681
A OTOH escrever deliberadamente uma consulta abaixo do ideal por não escrever um ?personagem parece bobagem.
Lightness Races in Orbit em
11
(.*?)|(.*?)|(.*)funciona para mim.
Shaz