如何将一列转换为两列对齐的列?

时间:2016-10-03 21:52:55

标签: bash

如果我使用pr -t-s" " --columns作为国家/地区列表,我的输出会很混乱:

Senegal                  Sri Lanka
Serbia                  Sudan
Seychelles              Suriname
Sierra Leone                  Swaziland
Singapore                  Sweden
Sint Maarten                  Switzerland
Slovakia                  Syria

我怎样才能拥有这样的2个良好对齐的列

Senegal                                            Sri Lanka
Serbia                                             Sudan
Seychelles                                         Suriname
Sierra Leone                                       Swaziland
Singapore                                          Sweden
Sint Maarten                                       Switzerland
Slovakia                                           Syria

2 个答案:

答案 0 :(得分:0)

使用printf awk命令格式化文件。使列保持对齐并在其间插入几个制表符。这应该适用于第一列包含一个单词,第二列包含任何内容作为第二列的一部分。

awk '{x=$1;$1="";y=$0} {printf "%-10s%s%-10s\n", x,"\t\t\t",y}' col
Senegal                          Sri Lanka
Serbia                           Sudan
Seychelles                       Suriname
Sierra                           Leone Swaziland
Singapore                        Sweden
Sint                             Maarten Switzerland
Slovakia                         Syria

答案 1 :(得分:-1)

我正在寻找column命令。