Унификация вывода консольных команд

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

Не так давно, в git-репозитории пакета утилит util-linux, разрабатываемого нашим коллегой Karel Zak, появился загадочный бранч с названием scols. Загадочным он был недолго - Karel объявил его назначение в своей ленте Google+. Теперь, со следующего релиза util-linux, в его состав войдет библиотека libsmartcols, предназначенная для форматирования вывода консольных утилит и написанная им совместно с его коллегой по компании, Ondrej Oprala. Ее предназначение, это выводить красиво оформленные таблицы и деревья в терминале, с учетом его возможностей и соответственно с предоставляемыми текстовыми данными. Karel приглашает другие проекты переходить на нее.

Новая библиотека уже получила одобрительный отзыв от Greg Kroah-Hartman.