Как я могу колонировать любой неколонированный ввод, как это ls
делает?
ls
создает оптимизированную таблицу с минимальной шириной для каждой строки, например:
ls
2 dsao file with space with
5 e g wsdl-rubo-6cb0f1a9086e80c
d file leading space
но если я передаю вывод column
(например, каждый файл в одной строке), он дополняет каждую строку одинаковой шириной, поэтому он соответствует ширине экрана:
for i in *; do echo "$i"; done | column
2 file with space
5 g
d leading space
dsao with
e wsdl-rubo-6cb0f1a9086e80c
file
(Я использую только список файлов здесь для генерации того же вывода, что и в примере, я ищу такое решение для колонизации других вещей в конце.)
Как я могу обработать любой вывод с переменной шириной кол?
ls
управляет этим). Может быть, мы найдем решение, если мы посмотрим на исходный код исходного кода ls
команды в coreutils
column -c
_n
-x`, но размещать выходные данные как можно меньше столбцов экрана, а не заполнять указанную ширину». Это правильно?