Linux column 命令
column
是 Linux 系统中的一个实用命令行工具,用于将输入文本格式化为多列显示。它能够将原本杂乱无章的文本数据重新组织成整齐的表格形式,极大提高可读性。
典型应用场景:
- 格式化命令输出(如
ls
、ps
等) - 整理 CSV 或 TSV 数据
- 制作简单的终端表格
- 对齐日志文件内容
基本语法
column [选项] [文件名]
如果不指定文件名,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
Name Age Gender
Alice 25 F
Bob 30 M
Charlie 22 M
处理 CSV 数据
实例
$ echo -e "ID,Name,Departmentn101,Alice,Salesn102,Bob,IT" | column -s, -t
ID Name Department
101 Alice Sales
102 Bob IT
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
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
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
Orange 0.8 30
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
Name Age
Alice 25
Bob 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 3 5 7 9
2 4 6 8 10
注意事项
- 分隔符处理:默认情况下,
column
会将多个连续空白字符视为一个分隔符,使用-n
选项可以禁用此行为 - 特殊字符:如果数据中包含空格或制表符等分隔符,建议明确指定分隔符
- 性能考虑:处理大型文件时,
column
可能需要较多内存 - 对齐方式:所有列默认左对齐,目前不支持直接指定对齐方式
替代方案比较
工具 | 优点 | 缺点 |
---|---|---|
column |
简单易用,Linux 内置 | 功能较基础 |
awk |
高度灵活,功能强大 | 语法复杂 |
pr |
支持分页和列控制 | 选项复杂 |
paste |
适合合并文件列 | 格式化能力有限 |
实践练习
- 将你的
/etc/passwd
文件前5行格式化为表格显示(提示:使用:
作为分隔符) - 尝试用
column
命令整理你的进程列表(ps aux
输出) - 创建一个包含三列数据的文本文件,用不同分隔符实验
-s
选项的效果
实例
# 练习1示例解决方案
head -5 /etc/passwd | column -s: -t
head -5 /etc/passwd | column -s: -t
通过掌握 column
命令,你可以轻松地将杂乱的文本数据转换为易读的表格形式,这在日常系统管理和数据处理中非常实用。
点我分享笔记