10

Хотя приложения для работы с электронными таблицами для редактирования файлов CSV на консоли раньше были одними из самых ранних приложений-убийц для персональных компьютеров, только некоторые из них и даже меньше документации по ним все еще активно поддерживаются.

После тщательного поиска в Интернете, справочных страниц и исходного кода я получил следующие три приложения, у всех из которых есть фундаментальные недостатки:

  • sc: сокращ. для калькулятора электронных таблиц; хороший инструмент с сочетаниями клавиш vi, но он не помещает строки, содержащие разделитель, в кавычки при экспорте в разделенный формат разделителя и не может правильно импортировать CSV-файлы, т.е. все числа интерпретируются как строки
  • GNU oleo: похоже, больше не поддерживается активно с 2001 года, и поэтому нет пакетов для основных дистрибутивов Linux
  • чайник: предлагает пакеты для различных операционных систем, но использует, например, нелогичное именование ячеек (числа для строки и столбца, т. е. 11, как представляется, для строки 1, столбца 1) и лишний код для графического интерфейса пользователя FLTK

Различные режимы Emacs также не заключают в кавычки строки, содержащие разделитель, или требуют гораздо большего набора текста для входа в каркас таблицы.

Поэтому я был бы очень благодарен за преодоление одного из этих недостатков или любых намеков на другой консольный редактор CSV. Это на самом деле не нужно делать какие-либо вычисления, просто редактируя ячейки или столбцы и строки.

2 ответа2

9

Обычно ожидается, что редактор CSV будет распознавать числа как таковые, заключать строки в кавычки только при необходимости, разрешать разделители внутри строк в кавычках, а не сворачивать пустые ячейки. Итак, это на экране

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

должен соотноситься с этим в файле

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

Олео не поддерживалось в течение нескольких лет. Я установил старый пакет в недавней системе Debian и обнаружил, что он неуклюжий и очень глючный. Операции занимают больше обычного количества нажатий клавиш. Все строки должны быть в кавычках, и вы должны сделать это вручную. Фильтр импорта CSV не может обрабатывать запятые в строках. Числа с большой точностью не сохраняются в их первоначальном виде (например, 1.23456789 становится 1.234567889999999). Процесс иногда сбегает, так что его нельзя убить из командной строки.

Кажется, что MacroCALC, Teapot и SC - единственные электронные таблицы CLI, которые все еще поддерживаются.

MacroCALC не может чисто импортировать или экспортировать файлы CSV.

Чайник немного необычен, но он очень прост в использовании, и руководство быстро читается. Импорт / экспорт CSV прост. У этого есть две главных причуды. Во-первых, хотя он выполняет автоматическое цитирование строк, он всегда цитирует все строки. Во-вторых, он усекает / расширяет все десятичные числа с точностью по умолчанию. Интерфейс FLTK работает, но он глючит.

СЦ быстрая и стабильная. Он работает аналогично vi и подходит для начинающих. Внешние программы необходимы для преобразования между форматом SC и CSV. Инструмент psc (только CSV -> SC) устанавливается вместе с SC и работает следующим образом:

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

После редактирования сохраните файл с помощью команды Put , затем используйте утилиту ssconvert (только SC -> CSV), поставляемую с Gnumeric:

ssconvert file.sc file.csv

Я пробовал обходить разные вещи с помощью psc - ssconvert и процесс выглядит стабильным. Числа и строки обрабатываются правильно.

Альтернативный метод редактирования CSV-файлов - использование текстового редактора с соответствующим плагином. Они есть как в Emacs, так и в Vim , хотя версия Vim работает быстрее и имеет больше возможностей. Они предлагают подсветку, выравнивание столбцов и операции с блоками. Я обнаружил, что оба очень медленные и глючные.

2

scim - лучшее, что я видел, и он может импортировать csv и экспортировать csv.

https://github.com/andmarti1424/scim

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .