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 | ```
|