column是 Linux 环境下一款用于文本列式排版的命令行工具。它可以将杂乱的文本内容整理成整齐的表格样式,显著提升信息可读性。
主要用途包括:
ls、
ps)
column [参数] [文件]
若未提供文件名,该命令会从标准输入获取内容进行处理。
| 参数 | 功能描述 |
|---|---|
| `-t` | 自动识别分隔符并生成表格布局 |
| `-s sep` | 设定输入字段的分隔字符(默认为空格) |
| `-c width` | 定义整体显示宽度(单位为字符) |
| `-x` | 采用先行后列的方式填充内容 |
| `-o sep` | 指定输出时各列之间的分隔符号(默认两个空格) |
| `-N names` | 为每列添加标题名称(用逗号分隔) |
| `-n` | 不合并多个连续的分隔符 |
$ echo -e "Name Age GendernAlice 25 FnBob 30 MnCharlie 22 M" | column -t
Name Age Gender
Alice 25 F
Bob 30 M
Charlie 22 M
$ echo -e "ID,Name,Departmentn101,Alice,Salesn102,Bob,IT" | column -s, -t
ID Name Department
101 Alice Sales
102 Bob IT
$ echo -e "1 2 3n4 5 6" | column -t -o " | "
1 | 2 | 3
4 | 5 | 6
$ echo -e "Item:Price:StocknApple:1.2:50nOrange:0.8:30" | column -s: -t
Item Price Stock
Apple 1.2 50
Orange 0.8 30
$ echo -e "Alice 25nBob 30" | column -N "Name,Age" -t
Name Age
Alice 25
Bob 30
column会将多个空白字符视为单个分隔符,如需保留请加上
-n参数
| 工具 | 优势 | 劣势 |
|---|---|---|
| `column` | 简单易用,系统自带 | 功能较为基础 |
| `awk` | 高度灵活,功能丰富 | 语法复杂不易掌握 |
| `pr` | 支持分页和多列控制 | 参数设置较繁琐 |
| `paste` | 适合合并多个文件列 | 格式化能力有限 |
/etc/passwd文件前5行以表格形式呈现(提示:使用
:分隔符)
column格式化你的进程列表(
ps aux输出)
-s参数的效果
# 练习1参考解法
head -5 /etc/passwd | column -s: -t
熟练掌握
column命令能够让你轻松地把混乱的文本信息转化为清晰易读的表格,这对日常系统维护和数据分析非常有帮助。