首页/系统/Linux 运维命令速查/场景:生成对齐的文本报表
文本处理77 条

场景:生成对齐的文本报表

把 CSV 或命令输出变成人眼友好的对齐表格:column -t 自动对齐,配 sort/head 出排行榜。

Linux 运维命令速查系统更新于 2026-10-13

column 只负责排版

column 把 CSV 或命令输出变成人眼友好的对齐表格:-t 自动按列对齐、-s 指定分隔符,-o 指定输出分隔符。它不改变内容,只做展示排版,因此很适合贴进工单、邮件与周报。字段内含引号或换行的真正 CSV 需要交给 csvkit、miller(mlr)、visidata 这类解析器,column 处理不了引号转义。

基本信息

适用平台Linux(util-linux)
语法column [选项] [文件]
常用选项-t 表格化、-s 输入分隔符、-o 输出分隔符
搭配sort、head、uniq -c 组成排行榜
替代工具csvkit、miller(mlr)、visidata

典型使用场景

  • 磁盘或目录占用排行榜(du 配合 sort 与 column)
  • 进程资源占用 Top 表(ps 排序后对齐)
  • CSV 报表在终端快速查看与核对
  • 把命令输出整理成对齐表格贴进工单
  • 多台机器配置差异对齐后肉眼比对

常用示例

常用示例
column -t -s, disk-report.csv                 # 按逗号分隔并对齐成表格
ps -eo pid,comm,%cpu,%mem --sort=-%cpu --no-headers | head -8 | column -t
(printf 'SITE\tSIZE\n'; du -sh /www/wwwroot/*) | column -t   # 表头与数据一起对齐
zcat access.log.gz | awk '{print $1}' | sort | uniq -c | sort -rn | head -10 | column -t
column -t -s: /etc/passwd | head -5           # 冒号分隔的文件同样适用
df -h | column -t                             # 命令自带表格,对齐后更易读

选项与替代工具

选项/工具作用适用场景
-t按列自动对齐最常见的用法,任何分隔文本都能用
-s 分隔符指定输入分隔符(如逗号、冒号)CSV、passwd 等结构化文本
-o 分隔符指定输出分隔符结果还要喂给后续工具时
-N 列名给无表头的输入命名列(较新版本支持)先看 column --help 确认本机是否支持
csvkit / mlr真正的 CSV 解析、过滤与统计字段内含逗号或引号时用它
visidata交互式表格浏览数据量大、需要边看边筛
中英混排时列宽可能不齐(按字符数而不是显示宽度计算):中文列多时可用 printf 定宽输出或直接导出 Markdown 表格,效果更可控。
顺序要摆对:先完成 sort、uniq 之类处理,最后再用 column 对齐;反过来先对齐再排序会把辛苦排好的表格彻底打乱。
输出重定向到文件时,列宽是按执行时的终端宽度计算的,不同环境产出可能不一致:需要稳定结果时先设置 COLUMNS 环境变量再执行。
column 不能正确处理带引号的 CSV 字段:字段内含分隔符或换行时列会被切错,而输出看起来仍像一张表,很容易把错位结果当成正确数据。

易错点

  • 字段内含空格的文本不指定 -s:会被按空白拆成多列,表格整体错位
  • 用 column 处理带引号的 CSV:切列错误且不报错,结果看着像对的但已经错了
  • 中文列宽不齐就判定工具异常:中文按字符计数而非显示宽度,属于已知限制
  • 把 column 放进生产解析链路:它只做展示排版,真正的数据解析要用 awk 或 CSV 工具

数据来源与参考

  • man 1 column(util-linux 手册)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌