将文件重新排列为三列

and*_*ras 4 bash awk

我试图在运行CentOS 6.4的几台计算机上比较已安装软件包的列表.输出yum list installed没有很好地排列成三列,例如:

ImageMagick.x86_64      6.5.4.7-6.el6_2 @base     
MAKEDEV.x86_64          3.24-6.el6      @anaconda-CentOS-201303020151.x86_64/6.4
ModemManager.x86_64     0.4.0-3.git20100628.el6
                                        @anaconda-CentOS-201303020151.x86_64/6.4
NetworkManager.x86_64   1:0.8.1-43.el6  @anaconda-CentOS-201303020151.x86_64/6.4
NetworkManager-glib.x86_64
                        1:0.8.1-43.el6  @anaconda-CentOS-201303020151.x86_64/6.4

长行被包装以适合80列,这意味着如果我sort这个文件的某些包的信息将被扰乱.. 是否有一个简单的awk命令来获取此输出并每行打印三个字段?

我试过搜索类似的例子,但我只找到人们将一条长行拆分成列的情况.

Chr*_*our 7

如果保证每都不包含空格,那么这种方法可能会起到作用:

$ yum list installed | xargs -n3 | column -t
ImageMagick.x86_64          6.5.4.7-6.el6_2          @base
MAKEDEV.x86_64              3.24-6.el6               @anaconda-CentOS-201303020151.x86_64/6.4
ModemManager.x86_64         0.4.0-3.git20100628.el6  @anaconda-CentOS-201303020151.x86_64/6.4
NetworkManager.x86_64       1:0.8.1-43.el6           @anaconda-CentOS-201303020151.x86_64/6.4
NetworkManager-glib.x86_64  1:0.8.1-43.el6           @anaconda-CentOS-201303020151.x86_64/6.4
Run Code Online (Sandbox Code Playgroud)

  • 比awk好!我知道每个字段都没有空格,所以这很有效。 (2认同)