CSV-редактор с интерактивной консолью

12

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

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

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

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

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

Пингвин Медсестра
источник
stackoverflow.com/questions/1875305/command-line-csv-viewer
Сиро Сантилли 法轮功 病毒 审查 六四 事件 法轮功

Ответы:

11

Редактор 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 работает быстрее и имеет больше возможностей. Они предлагают подсветку, выравнивание столбцов и операции с блоками. Я обнаружил, что оба очень медленные и глючные.

user60598
источник