LINUX.ORG.RU

как задать ширину столбца


0

1

Здравствуйте,мне нужно сделать скрипт, который выводит таблицу (6 строк 4 столбца), как это грамотно сделать ? я так понимаю написать через echo или вроде того, разделяя столбцы как-нибудь табуляцией, но как задать фиксированную ширину столбца, потому что текст там не совсем равномерный и всё жутко будет расплываться.Может awk, sed..что-то совсем не могу найти ответ

Есть printf, у него могут найтись нужные опции.

abraziv_whiskey ★★★★★ ()
Ответ на: комментарий от abraziv_whiskey

что-то мне кажется, что у него нет нужных опций, насколько я вижу

kaifolom ()

если в шрифте терминала (ты ведь в терминал выводишь?) ширина символов одинаковая, то почему-бы тебе не считать количество символов в каждой выводимой ячейке и не добивать их пробелами до максимального размера ячейки в столбце?

кстати

NCURSES not only creates a wrapper over terminal capabilities, but also gives a robust framework to create nice looking UI (User Interface)s in text mode.

spunky ★★ ()
Ответ на: комментарий от spunky

это я всё понимаю, и мне нужно не добивать пробелами, а наоборот, что б переносился текст и хотелось бы увидеть какие-то конкретные команды и опции

kaifolom ()
Ответ на: комментарий от kaifolom

для переносимости лучше использовать какой-либо cvs-like формат с разделителем, наверное.

spunky ★★ ()

> как задать фиксированную ширину столбца
Табуляцией

Lumi ★★★★★ ()
Ответ на: комментарий от Lumi

знач1 знач2 знач3

тексттексттексттекст тексттекст текст

ну соответственно вместо пробелов табуляция ( я не знаю, как тут на форуме её вставить)

и как тут табуляцией выравнивать? это маленький пример, а текста будет побольше, чем тут и мне нужно как-то перенести, грубо говоря, что б в одной строчке помещалось «тексттекст» и на другую переносилось во всех столбцах

kaifolom ()
Ответ на: комментарий от kaifolom

Если ширина столбца больше шага табуляции, то всё-равно поплывёт.
Какие-нибудь ограничения есть?

Lumi ★★★★★ ()
Ответ на: комментарий от Lumi

ну как я знаю, что если ширина больше табуляции. то поплывёт, можно две табуляции вставить, не проблема. ограничения.. в смысле ? на ширину и прочее ? нет нету, нужно просто вывести таблицу. В одном столбце будет одна буква, в другом одно слово а в двух других 5-10 слов

kaifolom ()
Ответ на: комментарий от kaifolom

Тогда в несколько проходов. Сначала находишь для каждого столбца ширину, потом на втором проходе после каждого столбца вставляешь либо пробелы, либо табуляцию. Других идей нет.

Lumi ★★★★★ ()

Есть команда column:

$ echo -e "The column utility formats\nits input into multiple\ncolumns. Rows are filled \nbefore columns." | column -t
The       column    utility  formats
its       input     into     multiple
columns.  Rows      are      filled
before    columns.

aikikode ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.