2013-09-23 94 views
2

我想比较运行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命令来获取这个输出并且每行打印三个字段?

我已经尝试搜索类似的例子,但我只找到人们将一个长行分成列的情况。

+0

它不是;看我的示例行(第3-4行和第6-7行)。每个软件包都有三个与之关联的字段,如果该行的长度超过80个字符,并且所有三个字段都被分割。 – andyras

回答

3

如果每个保证不会包含空格,则这种做法可能会做的伎俩:

$ 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 
+1

比awk好!我知道每个领域都没有空间,所以这个工作很完美。 – andyras