Editor CSV baseado em console interativo

9

Embora os aplicativos de planilha para editar arquivos CSV no console costumavam ser um dos primeiros aplicativos importantes para computadores pessoais, apenas alguns deles e ainda menos a documentação sobre eles ainda são ativamente mantidos.

Depois de fazer uma extensa pesquisa na Web, manpages e código-fonte, acabei com os três aplicativos a seguir, todos com desvantagens fundamentais:

  • sc: abrev. para calculadora de planilha; boa ferramenta com vi keybindings, mas não coloca strings contendo o delimitador entre aspas ao exportar para o formato separado por delimitador e não pode importar arquivos csv corretamente, ou seja, todos os números são interpretados como strings
  • GNU oleo: não parece ser mantido ativamente por mais tempo desde 2001 e, portanto, não há pacotes para grandes distribuições linux
  • teapot: oferece pacotes para vários sistemas operacionais, mas usa, por exemplo, nomenclatura contra-intuitiva para células (números para linha e coluna, ou seja, 11 parece ser a linha 1, coluna 1) e código supérfluo para GUT FLTK

Vários modos do Emacs também não citam strings contendo o delimitador ou exigem muito mais digitação para entrar no scaffold de uma tabela.

Portanto, eu ficaria muito grato por superar um desses inconvenientes ou quaisquer sugestões para outro editor de CSV baseado em console. Na verdade, não é necessário fazer cálculos apenas editando células ou colunas e linhas.

    
por Penguin Nurse 23.10.2012 / 23:52

2 respostas

8

Geralmente, espera-se que um editor CSV reconheça números como tal, cite cadeias somente quando necessário, permita delimitadores dentro de cadeias de caracteres citadas e não colapse células vazias. Então, isso na tela

1                      2          3
col-one                           col,three
                       col two
This is a long string. 1.23456789 3.14

deve se correlacionar com isso no arquivo

1,2,3
col-one,,"col,three"
,"col two",
"This is a long string.",1.23456789,3.14

Oleo não foi mantido por vários anos. Eu instalei um pacote antigo em um sistema Debian recente e descobri que ele é desajeitado e com muito bugs. As operações demoram mais do que o número normal de toques de tecla. Todas as strings devem ser citadas e você precisa fazer isso manualmente. O filtro de importação CSV não pode manipular vírgulas dentro de seqüências de caracteres. Os números de maior precisão não são mantidos em sua forma original (por exemplo, 1.23456789 se torna 1.234567889999999). O processo às vezes se torna fugitivo para que não possa ser eliminado da linha de comando.

Parece que o MacroCALC, o Teapot e o SC são as únicas planilhas do CLI que ainda estão sendo atualizadas.

MacroCALC não pode importar ou exportar arquivos CSV de forma limpa.

Bule é um pouco incomum, mas é muito fácil de usar e o manual é uma leitura rápida . A importação / exportação de CSV é simples. Tem duas peculiaridades principais. Primeiro, enquanto faz a citação automática de cadeias, sempre cita todas as cadeias de caracteres. Segundo, truncará / expandirá todos os números decimais para a precisão padrão. A interface do FLTK está operacional, mas é buggy.

O SC é rápido e estável. Ele opera de forma semelhante ao vi e é quase tão amigável para iniciantes. Programas externos são necessários para converter entre o formato SC e o CSV. A ferramenta psc (somente CSV - > SC) é instalada com o SC e funciona assim:

cat file.csv | psc -k -d, | sc

Após a edição, salve o arquivo com o comando Put e use o utilitário ssconvert (somente SC - > CSV) que vem com o Gnumeric:

ssconvert file.sc file.csv

Tentei percorrer várias coisas com psc - ssconvert e o processo parece estável. Números e strings são manipulados corretamente.

Um método alternativo para editar arquivos CSV seria usar um editor de texto com um plug-in apropriado. Ambos Emacs e Vim tê-los, embora a versão do Vim seja mais rápida e tenha mais recursos. Eles oferecem operações de realce, alinhamento de coluna e bloqueio. Eu achei ambos muito lentos e com bugs.

    
por 11.04.2013 / 23:19
2

scim é o melhor que já vi e pode importar nativamente csv e exportar csv.

link

    
por 30.06.2015 / 06:32