Каков наиболее эффективный способ преобразования данных, разделенных табуляцией, например:
a b c d cat
NULL NULL NULL NULL NULL
NULL NULL NULL d d
NULL NULL c NULL c
NULL NULL c d c; d
NULL b NULL NULL b
NULL b NULL d b; d
NULL b c NULL b; c
NULL b c d b; c; d
a NULL NULL NULL a
a NULL NULL d a; d
a NULL c NULL a; c
a NULL c d a; c; d
a b NULL NULL a; b
a b NULL d a; b; d
a b c NULL a; b; c
a b c d a; b; c; d
Нечто близкое к этому:
a | b | c | d | cat
-----+------+------+------+-----------
NULL | NULL | NULL | NULL | NULL
NULL | NULL | NULL | d | d
NULL | NULL | c | NULL | c
NULL | NULL | c | d | c; d
NULL | b | NULL | NULL | b
NULL | b | NULL | d | b; d
NULL | b | c | NULL | b; c
NULL | b | c | d | b; c; d
a | NULL | NULL | NULL | a
a | NULL | NULL | d | a; d
a | NULL | c | NULL | a; c
a | NULL | c | d | a; c; d
a | b | NULL | NULL | a; b
a | b | NULL | d | a; b; d
a | b | c | NULL | a; b; c
a | b | c | d | a; b; c; d
В настоящее время я использую Notepad ++ следующим образом:
- Преобразовать вкладки в пробелы
- Выровняйте данные вручную
- Используйте режим столбца, чтобы вставить трубы
Второй шаг - самый утомительный, и я бы предпочел автоматизировать хотя бы эту часть.
Примечание: я использую браузер при работе, и иногда у меня открыт текстовый редактор. Эффективное решение - это то, которое требует минимальных усилий. Я могу использовать:
- Notepad ++
- Универсальный текстовый редактор с поддержкой регулярных выражений поиск / замена
- JavaScript набран внутри консоли браузера
- Интернет-сервис онлайн
- PHP в командной строке (
php -a
)
conversion
csv
text-formatting
ascii
Салман А
источник
источник
awk
сценарий.{{(⊃⍵)⍪⍉⍪↑¨↓⍉↑1↓⍵}s¨'⎕T'⎕T¨(s←1↓¨⊢⊂⍨⊢=⊃)¯1⌽⍵}
кажется, достаточно хорош для работы, а?)Ответы:
Как я могу преобразовать разделенные табуляцией значения в таблицу ASCII?
Я использую Генератор текстовых таблиц для такого рода задач.
Я вставил ваши данные на эту страницу, и она создала следующую таблицу:
Затем вы можете скопировать этот вывод (генератор выполнил большую часть тяжелой работы), вставить в notepad ++ и очистить соответствующим образом.
источник
Если вам нужно решение для командной строки, вы также можете использовать pandoc с фильтром pandoc-placetable .
Разместите вашу таблицу
foo.txt
и выполните:Что приводит к следующему
output.md
:Чтобы прочитать из STDIN, опустите
--file
аргумент. Чтобы печатать в STDOUT, не указывайте-o
аргумент.источник
Идея Руслана об использовании команды Unix / Linux
column
хороша, но приведенная в ответе командная строка не совсем работает. Прежде всего,column
не распознает\t
(или\\t
) в командной строке как вкладку. Если у вас естьbash
, вы можете сделатьВ противном случае вы можете сделать
Но даже это не отвечает на вопрос. Вы можете получить вертикальные полосы, выполнив
который производит вывод, как
Добавление штриховой линии после заголовка вручную не так утомительно.
Если у вас нет доступа к полной системе Unix / Linux, вы можете использовать Cygwin или один из других Unix-лайков для этого.
источник
set ts=4
настройки Vim ).