Skip to content

Commit 7c9a1c0

Browse files
authored
add column.md (#550)
1 parent 39e590c commit 7c9a1c0

File tree

1 file changed

+123
-0
lines changed

1 file changed

+123
-0
lines changed

command/column.md

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
column
2+
===
3+
4+
按列格式化输出文件
5+
6+
## 概要
7+
8+
```shell
9+
column [options] [file ...]
10+
```
11+
12+
## 主要用途
13+
14+
- 将单列数据整理为多列显示,每行宽度可以指定,超出的部分自动换行。
15+
- 将多列数据进行快速整理,对齐每列的字符。
16+
17+
## 参数
18+
19+
file(可选),当没有指定文件时,默认会从标准输入读取,因此可以配合管道符使用。
20+
21+
## 选项
22+
23+
```shell
24+
-c, --columns <width> 输出宽度(以字符数表示)
25+
-t, --table 创建一个表格(每列字符会对齐)
26+
-s, --separator <string> 指定识别表格的分隔符
27+
-o, --output-separator <string> 输出表格的列分隔符,默认为两个空格
28+
-x, --fillrows 在列之前填充行
29+
-h, --help 显示此帮助
30+
-V, --version 输出版本信息
31+
```
32+
33+
## 返回值
34+
35+
格式化排列后的字符串。
36+
37+
## 示例
38+
39+
- 整理单列数据
40+
41+
```shell
42+
# 生成 26 个英文字母, 每列一个
43+
$ for a in {a..z}; do echo $a; done > test
44+
45+
# 每行最大 60 个字符
46+
$ cat test | column -c 60
47+
a e i m q u y
48+
b f j n r v z
49+
c g k o s w
50+
d h l p t x
51+
52+
# 在上面的基础上,进一步整理,每列之间宽度默认两个空白符
53+
$ cat test | column -c 60 | column -t
54+
a e i m q u y
55+
b f j n r v z
56+
c g k o s w
57+
d h l p t x
58+
59+
# 指定每列之间用 ', ' 拼接
60+
$ cat test | column -c 60 | column -t -o ', '
61+
a, e, i, m, q, u, y
62+
b, f, j, n, r, v, z
63+
c, g, k, o, s, w
64+
d, h, l, p, t, x
65+
```
66+
67+
- 整理多列数据
68+
69+
```shell
70+
# 现有如下内容较为凌乱的文本文件 test
71+
$ cat test
72+
Address[0] Metal3,pin 133.175:159.92
73+
Address[1] Metal3,pin 112.38:159.92
74+
Address[2] Metal3,pin 70.775:159.92
75+
Address[3] Metal3,pin 41.655:159.92
76+
DataIn[0] Metal3,pin 66.615:159.92
77+
DataIn[1] Metal3,pin 37.495:159.92
78+
DataIn[2] Metal3,pin 122.88:159.92
79+
DataIn[3] Metal3,pin 95.74:159.92
80+
DataOut[0] Metal3,pin 45.815:159.92
81+
DataOut[1] Metal3,pin 79.095:159.92
82+
DataOut[2] Metal3,pin 104.055:159.92
83+
DataOut[3] Metal3,pin 62.46:159.92
84+
MemReq Metal3,pin 108.215:159.92
85+
RdWrBar Metal3,pin 87.415:159.92
86+
clock Metal3,pin 74.935:159.92
87+
88+
# 列对齐
89+
$ cat test | column -t
90+
Address[0] Metal3,pin 133.175:159.92
91+
Address[1] Metal3,pin 112.38:159.92
92+
Address[2] Metal3,pin 70.775:159.92
93+
Address[3] Metal3,pin 41.655:159.92
94+
DataIn[0] Metal3,pin 66.615:159.92
95+
DataIn[1] Metal3,pin 37.495:159.92
96+
DataIn[2] Metal3,pin 122.88:159.92
97+
DataIn[3] Metal3,pin 95.74:159.92
98+
DataOut[0] Metal3,pin 45.815:159.92
99+
DataOut[1] Metal3,pin 79.095:159.92
100+
DataOut[2] Metal3,pin 104.055:159.92
101+
DataOut[3] Metal3,pin 62.46:159.92
102+
MemReq Metal3,pin 108.215:159.92
103+
RdWrBar Metal3,pin 87.415:159.92
104+
clock Metal3,pin 74.935:159.92
105+
106+
# 将 ',' 和 ':' 也识别为分隔符
107+
$ cat test | column -t -s ',: '
108+
Address[0] Metal3 pin 133.175 159.92
109+
Address[1] Metal3 pin 112.38 159.92
110+
Address[2] Metal3 pin 70.775 159.92
111+
Address[3] Metal3 pin 41.655 159.92
112+
DataIn[0] Metal3 pin 66.615 159.92
113+
DataIn[1] Metal3 pin 37.495 159.92
114+
DataIn[2] Metal3 pin 122.88 159.92
115+
DataIn[3] Metal3 pin 95.74 159.92
116+
DataOut[0] Metal3 pin 45.815 159.92
117+
DataOut[1] Metal3 pin 79.095 159.92
118+
DataOut[2] Metal3 pin 104.055 159.92
119+
DataOut[3] Metal3 pin 62.46 159.92
120+
MemReq Metal3 pin 108.215 159.92
121+
RdWrBar Metal3 pin 87.415 159.92
122+
clock Metal3 pin 74.935 159.92
123+
```

0 commit comments

Comments
 (0)