bash脚本中的制表

时间:2016-11-02 16:28:33

标签: linux bash sh

我正在尝试创建一个脚本,该脚本通过http请求获取数据,然后打印分为两列的一些信息。 例如:

abcde            |   123
fghijkl          |   4567
mnopqrstuvwxyz           |   foo 

正如你所看到的,即使是制表,也不像我预期的那样......

有没有人有想法解决这个问题?

先谢谢,

1 个答案:

答案 0 :(得分:2)

您可以使用:

 cat file  | column -t -s' '

abcde           |  123
fghijkl         |  4567
mnopqrstuvwxyz  |  foo

示例是包含您确切输出的文件,但您可以从任何来源管道column

  • -s指定分隔符(可以是字符集)。
  • -t确定输入包含的列数并创建表。默认情况下,列使用空格分隔,或使用-s选项提供的字符分隔列。适用于漂亮的打印显示。

如果输入的dont包含分隔符(在本例中为“|”),则可以使用以下内容插入所需的分隔符。

cat file | sed 's/ /  |  /' | column -t -s' '

在上面sed我用"|"替换单个空格  ,sed匹配第一个空格,默认情况下只匹配一行的一个空格。