Команда Linux Column работает с текстовыми файлами с разделителями
Вы можете отобразить файл с разделителями в терминале Linux, чтобы каждый элемент с разделителями отображался в своем собственном столбце. Например, вот пример таблицы футбольной премьер-лиги Англии, в которой в качестве разделителей используются трубы.
поз | команда | PLD | баллы 1 | Leicester | 31 | 66 2 | Tottenham | 31 | 61 3 | арсенал | 30 | 55 4 | Манчестер Сити | 30 | 51 5 | западная ветчина | 30 | 50 6 | Манчестер Юнайтед | 30 | 50 7 | Southampton | 31 | 47 8 | Сток Сити | 31 | 46 9 | ливерпуль | 29 | 44 10 | Челси | 30 | 41
В этот список входят 10 лучших команд, их названия, количество игр, в которых они играли, и набранные очки.
Существует ряд команд Linux, которые вы можете использовать для отображения данных в командной строке. Например, команда cat отображает файл в точности так, как он отображается в файле. Команда tail может использоваться для показа части файла или всего файла, как и команда head . Однако ни одна из этих команд не отображает вывод таким образом, чтобы он выглядел хорошо.
В идеале вы хотите, чтобы данные были видны без символа канала и разнесены. Вот тут и появляется команда колонка .
Основное использование команды Column
Вы можете запустить команду столбца без каких-либо параметров следующим образом:
столбец
Это лучше всего работает с файлами слов с пробелами между словами. это не работает так же хорошо с табличными данными, как в этом примере таблицы лиги.
Вывод следующий:
pos | team | pld | pts 2 | tottenham | 31 | 61 4 | man city | 30 | 51 6 | man utd | 30 | 50 8 | Сток Сити | 31 | 46 10 | Челси | 30 | 41 1 | Лестер | 31 | 66 3 | Арсенал | 30 | 55 5 | Вест Хэм | 30 | 50 7 | Саутгемптон | 31 | 47 9 | Ливерпуль | 29 | 44
Указание ширины столбца
Если вы знаете ширину столбцов, вы можете использовать следующую команду для разделения столбцов по ширине:
column -c
Например, если вы знаете, что ширина каждого столбца составляет 20 символов, вы можете использовать следующую команду:
column -c20
В случае таблицы лиги это не работает хорошо, если все столбцы определенной ширины. Чтобы доказать это, измените файл таблицы лиги следующим образом:
команда pos pld pts 1 лестер 31 66 2 Тоттенхэм 31 61 3 арсенал 30 55 4 человек город 30 51 5 Вест Хэм 30 50 6 человек Юнайтед 30 50 7 часов 31 47 8 сток 31 46 9 ливерпуль 29 44 10 челси 30 41
Теперь с помощью следующей команды вы можете получить приличный вывод:
столбец -c10 лигатный
Проблема заключается в том, что данные в файле уже выглядят хорошо, поэтому команды tail, head, nano или cat могут отображать одну и ту же информацию приемлемым способом.
Указание разделителей с помощью команды Column
Лучший способ использовать команду столбца для файлов с запятой, канала или других файлов с разделителями заключается в следующем:
column -s "|" -t
Ключ -s позволяет определить используемый разделитель. Например, если ваш файл разделен запятыми, вы можете поставить “,” после -s. Ключ -t отображает данные в табличном формате.
Выходные разделители
До сих пор этот пример показал, как работать с разделителем входного файла, но как быть с данными, когда они отображаются на экране.
По умолчанию в Linux используется два пробела, но, возможно, вы захотите использовать вместо них два двоеточия. Следующая команда показывает, как указать разделитель вывода:
column -s "|" -t -o "::"
При использовании с файлом таблицы лиги команда выдает следующий вывод:
pos :: team :: pld :: pts 1 :: Лестер :: 31 :: 66 2 :: Тоттенхэм :: 31 :: 61 3 :: арсенал :: 30 :: 55 4 :: мужской город :: 30 :: 51 5 :: западная ветчина :: 30 :: 50 6 :: Манчестер Юнайтед :: 30 :: 50 7 :: Саутгемптон :: 31 :: 47 8 :: Сток Сити :: 31 :: 46 9 :: Ливерпуль :: 29 :: 44 10 :: Челси :: 30 :: 41
Заполнить строки перед столбцами
Есть еще один переключатель, который не особенно полезен, но включен сюда для полноты картины. Ключ -x при использовании с ключом -c заполняет строки перед столбцами.
Так что это значит? Посмотрите на следующий пример:
column -c100 лига
Вывод этого будет следующим:
pos | team | pld | pts 3 | arsenal | 30 | 55 6 | man utd | 30 | 50 9 | Ливерпуль | 29 | 44 1 | leicester | 31 | 66 4 | man city | 30 | 51 7 | Саутгемптон | 31 | 47 10 | Челси | 30 | 41 2 | Тоттенхэм | 31 | 61 5 | Вест Хэм | 30 | 50 8 | Сток Сити | 31 | 46
Как вы можете видеть, сначала идет вниз, а затем поперек.
Теперь посмотрим на этот пример:
column -c100 -x лига
На этот раз вывод выглядит следующим образом:
pos | team | pld | pts 1 | leicester | 31 | 66 2 | tottenham | 31 | 61 3 | арсенал | 30 | 55 4 | man city | 30 | 51 5 | west ham | 30 | 50 6 | man Юнайтед | 30 | 50 7 | Саутгемптон | 31 | 47 8 | Сток Сити | 31 | 46 9 | Ливерпуль | 29 | 44 10 | Челси | 30 | 41
Данные идут по экрану, а затем вниз.
Другие переключатели
Доступны только другие переключатели:
столбец -V
Здесь отображается версия колонки, установленной на вашем компьютере.
column --help
Это отображает страницу руководства к окну терминала.