column

按列格式化输出文件

概要

  1. column [options] [file ...]

主要用途

  • 将单列数据整理为多列显示,每行宽度可以指定,超出的部分自动换行。
  • 将多列数据进行快速整理,对齐每列的字符。

参数

file(可选),当没有指定文件时,默认会从标准输入读取,因此可以配合管道符使用。

选项

  1. -c, --columns <width> 输出宽度(以字符数表示)
  2. -t, --table 创建一个表格(每列字符会对齐)
  3. -s, --separator <string> 指定识别表格的分隔符
  4. -o, --output-separator <string> 输出表格的列分隔符,默认为两个空格
  5. -x, --fillrows 在列之前填充行
  6. -h, --help 显示此帮助
  7. -V, --version 输出版本信息

返回值

格式化排列后的字符串。

示例

  • 整理单列数据
  1. # 生成 26 个英文字母, 每列一个
  2. $ for a in {a..z}; do echo $a; done > test
  3. # 每行最大 60 个字符
  4. $ cat test | column -c 60
  5. a e i m q u y
  6. b f j n r v z
  7. c g k o s w
  8. d h l p t x
  9. # 在上面的基础上,进一步整理,每列之间宽度默认两个空白符
  10. $ cat test | column -c 60 | column -t
  11. a e i m q u y
  12. b f j n r v z
  13. c g k o s w
  14. d h l p t x
  15. # 指定每列之间用 ', ' 拼接
  16. $ cat test | column -c 60 | column -t -o ', '
  17. a, e, i, m, q, u, y
  18. b, f, j, n, r, v, z
  19. c, g, k, o, s, w
  20. d, h, l, p, t, x
  • 整理多列数据
  1. # 现有如下内容较为凌乱的文本文件 test
  2. $ cat test
  3. Address[0] Metal3,pin 133.175:159.92
  4. Address[1] Metal3,pin 112.38:159.92
  5. Address[2] Metal3,pin 70.775:159.92
  6. Address[3] Metal3,pin 41.655:159.92
  7. DataIn[0] Metal3,pin 66.615:159.92
  8. DataIn[1] Metal3,pin 37.495:159.92
  9. DataIn[2] Metal3,pin 122.88:159.92
  10. DataIn[3] Metal3,pin 95.74:159.92
  11. DataOut[0] Metal3,pin 45.815:159.92
  12. DataOut[1] Metal3,pin 79.095:159.92
  13. DataOut[2] Metal3,pin 104.055:159.92
  14. DataOut[3] Metal3,pin 62.46:159.92
  15. MemReq Metal3,pin 108.215:159.92
  16. RdWrBar Metal3,pin 87.415:159.92
  17. clock Metal3,pin 74.935:159.92
  18. # 列对齐
  19. $ cat test | column -t
  20. Address[0] Metal3,pin 133.175:159.92
  21. Address[1] Metal3,pin 112.38:159.92
  22. Address[2] Metal3,pin 70.775:159.92
  23. Address[3] Metal3,pin 41.655:159.92
  24. DataIn[0] Metal3,pin 66.615:159.92
  25. DataIn[1] Metal3,pin 37.495:159.92
  26. DataIn[2] Metal3,pin 122.88:159.92
  27. DataIn[3] Metal3,pin 95.74:159.92
  28. DataOut[0] Metal3,pin 45.815:159.92
  29. DataOut[1] Metal3,pin 79.095:159.92
  30. DataOut[2] Metal3,pin 104.055:159.92
  31. DataOut[3] Metal3,pin 62.46:159.92
  32. MemReq Metal3,pin 108.215:159.92
  33. RdWrBar Metal3,pin 87.415:159.92
  34. clock Metal3,pin 74.935:159.92
  35. # 将 ',' 和 ':' 也识别为分隔符
  36. $ cat test | column -t -s ',: '
  37. Address[0] Metal3 pin 133.175 159.92
  38. Address[1] Metal3 pin 112.38 159.92
  39. Address[2] Metal3 pin 70.775 159.92
  40. Address[3] Metal3 pin 41.655 159.92
  41. DataIn[0] Metal3 pin 66.615 159.92
  42. DataIn[1] Metal3 pin 37.495 159.92
  43. DataIn[2] Metal3 pin 122.88 159.92
  44. DataIn[3] Metal3 pin 95.74 159.92
  45. DataOut[0] Metal3 pin 45.815 159.92
  46. DataOut[1] Metal3 pin 79.095 159.92
  47. DataOut[2] Metal3 pin 104.055 159.92
  48. DataOut[3] Metal3 pin 62.46 159.92
  49. MemReq Metal3 pin 108.215 159.92
  50. RdWrBar Metal3 pin 87.415 159.92
  51. clock Metal3 pin 74.935 159.92