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çã|apple123@aol.com|aranja
aipo| celery@aol.com |
sanduíche de repolho|sandwich@aol.com|turkey

Para
apple|orange|apple123@aol.com
aipo|cabbage|celery@aol.com
sandwich|turkey|sandwich@aol.com


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


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.