6

Я уверен, что это очень просто, но я не могу вспомнить, как сказать терминальному пейджеру (more/less/pg/most) отображать длинный список в столбцах.

Поскольку мой ввод - это просто список коротких элементов, отображение его так же, как ls делает это по умолчанию, избавило бы меня от ненужной прокрутки и драгоценного экрана.

плохой:

aaa
bbb
ccc
ddd
eee
fff
ggg
hhh
iii

хорошо:

aaa ddd ggg
bbb eee hhh
ccc fff iii

3 ответа3

8

Используйте column .

Пример:

ls -1 | column -c 100

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

0

Аналогично ответу Дэниела Бека:

$ echo {a..c}{a..c}{a..c}| tr \  \\n | column | sed 's/\t/ /g' | $PAGER
aaa aba aca baa bba bca caa cba cca
aab abb acb bab bbb bcb cab cbb ccb
aac abc acc bac bbc bcc cac cbc ccc

Ключ заключается в том, чтобы сделать вывод более компактным путем замены табуляции пробелами.

0

Вы можете использовать paste чтобы соединить строки из stdin:

paste - - - < filename

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .