Как мне отформатировать файл в 4 столбца? - PullRequest
1 голос
/ 27 ноября 2010
cat file  
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

Я пытался с

column -c 4 file 

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

Второй вопрос: какой формат должен иметь аргумент для флага -s?

Ответы [ 2 ]

2 голосов
/ 27 ноября 2010

Попробуйте:

fold -w 12 file

Число 12 - это число столбцов данных * количество символов в столбце (две цифры + один пробел).Параметр -w предназначен для обозначения ширины экрана в виде символьных столбцов.

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

Это работает почти так, как вы хотите:

sed 's/ /\n/g' file | column -xc 35

«35» несколько произвольно, но любое значение от 32 до 39 будет работать в этом случае.Это связано с шириной полей (2 символа, которые меньше ширины табуляции), количеством полей, желаемых для каждой строки, и шириной табуляции (8 символов).Итак, в основном, 8 * 4 равно 32.

Вот демонстрация опции -s (которая используется с -t):

$ echo -e "a;b|c\naaaaa;bbbbb|ccccc"|column -t -s ';|'
a      b      c
aaaaa  bbbbb  ccccc

Без использования column,вывод выглядит так:

$ echo -e "a;b|c\naaaaa;bbbbb|ccccc"
a;b|c
aaaaa;bbbbb|ccccc
1 голос
/ 27 ноября 2010

Допустим, вы хотите:

01 02 03 04
05 06 07 08
09 10 11 12
13 14 15 16

В этом случае:

$ xargs -n4 < file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...