我正在尝试比较两台运行 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 列,这意味着如果我排序
这个文件,一些包的信息将被打乱。是否有一个简单的 awk 命令来获取这个每行输出和打印三个字段?
我曾尝试搜索类似的例子,但我只找到人们将一长行分成几列的情况。
最佳答案
如果保证每个 列 不包含空格,那么这种方法可能会成功:
$ 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
关于bash - 将文件重新排列成三列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18964478/