У меня такая структура таблицы (предположим, что разделители являются табуляциями):
AAA BBBB CCC
01 Item Description here
02 Meti A very very veeeery long description which will easily extend the recommended output width of 80 characters.
03 Etim Last description
То, что я хочу, это:
AAA BBBB CCC
01 Item Description here
02 Meti A very very veeeery
long description which
will easily extend the
recommended output width
of 80 characters.
03 Etim Last description
Это означает, что я хочу разделить $3
в массив строк с предопределенным значением WIDTH
, где первый элемент добавляется «нормально» к текущей строке, а все последующие элементы получают новую ширину строки в соответствии с отступом первых двух столбцов (заполнение также можно исправить, еслиэто проще).
В качестве альтернативы, текст в $0
может быть разделен на GLOBAL_WIDTH
(например, 80 символов) на первую строку, а "rest" -> первая строка печатается "нормально" с помощью printf,остальное делится на GLOBAL_WIDTH - (COLPAD1 + COLPAD2)
и добавляются новые строки ширины, как указано выше.
Я пытался работать с fmt
и fold
после форматирования в awk (которое в основном просто помещает заголовки в таблицу), ноони, конечно, не отражают восприятие поля awk.
Как этого добиться, используя инструменты bash и / или awk?