column 是什么
column 把散乱文本整理成对齐的列,最常用的是 -t(表格模式,按分隔符切列并自动对齐),-s 指定输入分隔符,-o 指定输出分隔符。它的目标不是生成严格表格,而是让终端输出与人眼阅读友好。
基本信息
| 适用平台 | Linux(util-linux 提供);BSD 版部分选项与行为有差异 |
|---|---|
| 命令语法 | column [选项] [文件] |
| 常用选项 | -t 表格模式、-s 输入分隔符、-o 输出分隔符、-c 显示宽度 |
| 输入来源 | 文件参数或标准输入 |
典型使用场景
- 看 CSV 或 TSV:把分隔符文本对齐显示,快速扫读字段
- 命令输出美化:mount、ps 这类列宽不一的输出对齐后更易读
- 生成简单报表:把 awk 处理结果对齐后贴给同事
- 核对字段数:对齐后一眼就能看出某些行缺字段
- 组织邮件正文:纯文本邮件用对齐表格比原始输出清楚得多
常用示例
常用示例
column -t -s, report.csv # CSV 转对齐表格
column -t -s $'\t' -o ' | ' data.tsv # TSV 输入,管道符分隔输出
mount | column -t # 挂载表对齐显示
ps -eo pid,comm,%mem --no-headers | sort -k3 -rn | head | column -t
awk -F: '{print $1","$3}' /etc/passwd | column -t -s,选项对照
| 选项 | 作用 | 说明 |
|---|---|---|
| -t | 表格模式,按 -s 切列并对齐 | 不加 -t 时是多列填充排版 |
| -s 分隔符 | 指定输入分隔符 | 不指定时按任意空白序列切分 |
| -o 字符串 | 指定输出分隔符 | 默认用空格补齐列宽 |
| -c 宽度 | 指定输出宽度 | 自动检测失败时手动指定 |
| 文件参数 | 从文件读取 | 省略时读标准输入 |
不指定 -s 时按任意连续空白切分,字段内部含空格的文本会被切成多列,先明确分隔符是关键。
column -t 需要读完全部输入才能计算列宽,超大文件会产生明显内存与延迟开销,先取样或改用专业表格工具。
对齐效果依赖等宽字体,复制到聊天工具或邮件客户端常会错位,重要报表建议改用真正的表格格式。
列宽由终端宽度决定,用 -c 指定更宽的宽度时列内换行与截断规则也跟着变;整行内容很长的场景,对齐出来的效果反而更难读,这种数据适合 cut 取字段后再分页查看。输入里混用制表符与空格时列边界会漂移。