Eu tenho um arquivo CSV grande que preciso remover a primeira coluna de dados. Não consigo abri-lo no Excel porque o Excel converte alguns dos valores nas colunas em números científicos.
Estou usando o Notepad ++ e estou tentando definir a primeira coluna do arquivo EXE,
1,Value1,value2,value3,value4,value5
3445,Value1,value2,value3,value4,value5
12345,Value1,value2,value3,value4,value5
1234,Value1,value2,value3,value4,value5
11,Value1,value2,value3,value4,value5
se parecer
Value1,value2,value3,value4,value5
Value1,value2,value3,value4,value5
Value1,value2,value3,value4,value5
Value1,value2,value3,value4,value5
Value1,value2,value3,value4,value5
fonte
^[^,]+,
e substitua por vazio?Pressione Ctrl+ He execute a seguinte substituição:
Agora pressione Alt+ Apara substituir todas as ocorrências.
Como funciona
A expressão regular
.*?,(.*)
corresponde a uma linha inteira:.*?,
corresponde a tudo antes da primeira vírgula, incluindo a própria vírgula..*
significa qualquer número de ocorrências de qualquer caractere, e o ponto de interrogação torna o quantificador preguiçoso , ou seja, corresponde ao mínimo de caracteres possível.(.*)
corresponde a tudo após a primeira vírgula.A inclusão
.*
de parênteses o converte em um subpadrão, para que o mastro possa ser acessado no campo de substituição.\1
representa a primeira sub-correspondência (corresponde a(.*)
).Como resultado, o Notepad ++ substitui a linha por tudo o que segue a primeira vírgula.
fonte
^[^,]+,
substituição global por uma string vazia não funcionará no Notepad ++. (+1)No Windows, você pode fazer o seguinte.
Eu assumi que você tem apenas 6 colunas. Se você tiver muito mais colunas, experimente * no campo de tokens. A idéia é retirada do Windows para comando
fonte
for /F "tokens=1* delims=," %i in (Input.csv) do @echo %j >> output.csv
Supondo que você tenha um sistema linux ou algum ambiente no estilo unix (eu gosto do gow , ou você pode tirar os utilitários do unixutils ), acredito que a execução do arquivo
cut -d , -f2-6
deve fazer o truque - deve, se bem me lembro, o truque --d
define o delimitador ef2-6
imprime o segundo ao sexto caractere.cat input.csv | cut -d , -f2-6 > output.csv
faria o truque ao pegar o arquivo de entrada e expulsar um arquivo de saída. Não está usando o bloco de notas, mas é rápido e muito simples.fonte
Você deve poder carregar o CSV no Excel e tratar os números como texto (impedindo a conversão para números científicos).
fonte
O Notepad ++ possui edição de coluna integrada e comando Line Up by (,) (plugin TextFX), fornecendo uma solução gráfica de apontar e clicar que provavelmente será a primeira vez que você está certo. Isso evita a necessidade de usar expressões regulares ou programação de shell, que normalmente exigem alguma depuração até que façam exatamente o que você deseja e nada mais.
Ponto de partida : arquivo CSV com colunas desalinhadas, portanto, não é fácil editar por coluna ...
Procedimento:
Selecione as linhas de interesse - talvez o arquivo inteiro.
Use o comando de menu TextFX> TextFX Edit> Alinhar várias linhas por vírgula (,) Isso alinha todas as linhas por coluna e facilita a edição de colunas.
Entre no Modo de coluna na coluna após a primeira vírgula (,) Para um pequeno número de linhas, use os comandos do teclado: Alt + Shift + Seta para baixo.
Se precisar trabalhar em muitas linhas (arquivo grande), use Alt + mouse e clique na coluna desejada da primeira linha, depois vá para a última linha do arquivo e Alt + Shift + clique na mesma posição da coluna. Isso ativa o modo de coluna no arquivo INTEIRO - você deve ver uma linha vertical atrás de todas as vírgulas.
Excluir no modo de coluna remove uma coluna inteira de caracteres. Portanto, você pode excluir tudo antes da primeira vírgula em todas as linhas ao mesmo tempo para obter:
Feito!
Comentários sobre esta solução em comparação com as várias outras sugeridas até agora:
A edição do Modo de coluna é bastante poderosa e, quando combinada às opções de plug-in do TextFX, aplica-se a várias situações de maneira rápida e fácil.
Por exemplo, se você decidiu excluir a 2ª coluna ou a Nésima coluna rapidamente, essa abordagem funcionará quase sem modificações.
Expressões regulares, scripts de shell, por outro lado, atingirão o objetivo, sim, mas em problemas complicados você passará mais tempo "corrigindo" sua sintaxe.
A versátil funcionalidade interna do Notepad ++ é um dos seus principais pontos fortes: você obtém bastante poder sem precisar recorrer à "programação".
fonte
Se você conhece o plug-in do console Python para o Notepad ++, posso aconselhá-lo sobre outro método. Você precisa adicionar seu texto no documento do Notepad ++ e executar o próximo script no console:
Este script adicionou o texto do resultado ao seu documento atual do Notepad ++.
fonte
Execute
vim
(no modo de comando, se não, pressione Escape).Digite o seguinte comando para mapear a ação de remover a primeira coluna da
q
chave:Que significa:
0
- vá para o início da linhadf,
- d elete tudo até , caracteres (incluindo vírgulas),j
- desça uma linha0
- vá para o início da linhaEm seguida, aplique esta ação a todas as linhas:
O que significa que execute a ação atribuída à chave
q
da linha do início (0) ao final ($).fonte
:%s/^[^,]\+,//g
?