Команда column в Linux

Linux 命令大全Энциклопедия команд Linux


columnявляется практичным инструментом командной строки в системах Linux, используемым для форматирования входного текста в многоколоночный вывод. Он может преобразовать изначально беспорядочные текстовые данные в аккуратную табличную форму, значительно улучшая читаемость.

Типичные случаи использования:

  • Форматирование вывода команды (например,ls、psи т.д.)
  • Упорядочивание данных CSV или TSV
  • Создание простых таблиц в терминале
  • Выровнять содержимое файла журнала

Базовый синтаксис

column [选项] [文件名]

Если имя файла не указано,columnчитает данные из стандартного ввода.


Общие параметры и

Опция Описание
-t Автоматически определять разделитель входных данных и создавать таблицу
-s sep Указать пользовательский разделитель столбцов (по умолчанию — пробельные символы)
-c width Установить общую ширину вывода (в символах)
-x Заполнять сначала строки, затем столбцы (по умолчанию — сначала столбцы, затем строки)
-o sep Указать разделитель столбцов вывода (по умолчанию — два пробела)
-N names Указать имена для каждого столбца (через запятую)
-n Не объединять несколько подряд идущих разделителей

Примеры использования

Базовое форматирование таблицы

Пример

$ echo -e "Имя Возраст ПолnАлиса 25 ЖnБоб 30 МnЧарли 22 М" | column -t
Имя Возраст Пол
Алиса    25   F
Боб      30   M
Чарли  22   M

Обработка данных CSV

Пример

$ echo -e "ID,Имя,Отделn101,Алиса,Продажиn102,Боб,ИТ" | column -s, -t
ID Имя Отдел
101  Алиса Продажи
102  Боб ИТ

Пользовательский разделитель вывода

Пример

$ echo -e "1 2 3n4 5 6" | column -t -o " | "
1 | 2 | 3
4 | 5 | 6

Объединение с другими командами

Пример

$ ls -l | head -5 | column -t
total 48
drwxr-xr-x  2  user user  4096  Jan  10  09:30  Desktop
drwxr-xr-x  2  user user  4096  Jan  10  09:30  Documents
drwxr-xr-x  2  user user  4096  Jan  10  09:30  Downloads

Продвинутое использование

Обработка нерегулярных данных

Пример

$ echo -e "Item:Price:StocknApple:1.2:50nOrange:0.8:30" | column -s: -t
Item Price Stock
Apple   1.2    50
Оранжевый  0.8    30

Указание имён столбцов

Пример

$ echo -e "Alice 25nBob 30" | column -N "Name,Age" -t
Name Age
Алиса  25
Боб    30

Управление шириной вывода

Пример

$ echo -e "1 2 3 4 5n6 7 8 9 10" | column -c 30 -t
1  3  5  7  9
2  4  6  8  10

Примечания

  1. Обработка разделителей: По умолчанию,columnрассматривает несколько последовательных пробельных символов как один разделитель; использование-nопция может отключить это поведение
  2. Специальные символы: Если данные содержат разделители, такие как пробелы или табуляции, рекомендуется явно указать разделитель
  3. Вопросы производительности: При обработке больших файлов,columnможет потребовать много памяти
  4. Выравнивание: Все столбцы по умолчанию выровнены по левому краю; прямое указание выравнивания в настоящее время не поддерживается

Сравнение альтернатив

Инструмент Преимущества Недостатки
column Простой и удобный в использовании, встроен в Linux Относительно базовая функциональность
awk Очень гибкий и мощный Сложный синтаксис
pr Поддерживает постраничный вывод и управление столбцами Сложные параметры
paste Подходит для объединения столбцов файла Ограниченные возможности форматирования

Практические упражнения

  1. Возьмите ваш/etc/passwdфайл и отформатируйте первые 5 строк как таблицу (Совет: используйте:в качестве разделителя)
  2. Попробуйте использоватьcolumnкоманду для упорядочивания списка процессов (ps auxвывод)
  3. Создайте текстовый файл с тремя столбцами данных и поэкспериментируйте с различными разделителями-sэффект опции

Пример

# Пример решения для упражнения 1
head -5 /etc/passwd | column -s: -t

Освоивcolumnкоманда, вы можете легко преобразовать беспорядочные текстовые данные в читаемую табличную форму, что очень практично в повседневном системном администрировании и обработке данных.


Linux 命令大全Энциклопедия команд Linux

Другие расширения