需要将两个命令的输出添加为awk列

时间:2018-11-28 18:57:25

标签: sed awk-formatting

我有一个文件,其中包含软件包名称及其发行版。“发行版更改”行包含旧版本和新版本:

grep -A 2 'Package list' pkglist
    Package list:   xorg-x11-drv-ati-firmware-7.6.1-3.el6_9.noarch
    Repository:     /Linux/6.9/rpms/xorg-x11-drv-ati-firmware-7.6.1-4.el6.noarch.rpm
    Release Change: 3.el6_9 --> 4.el6

    Package list:   yum-plugin-fastestmirror-1.1.30-40.0.1.el6.noarch
    Repository:     /Linux/6.9/rpms/yum-plugin-fastestmirror-1.1.30-42.0.1.el6_10.noarch.rpm
    Release Change: 40.0.1.el6 --> 42.0.1.el6_10

    Package list:   yum-utils-1.1.30-40.0.1.el6.noarch
    Repository:     /Linux/6.9/rpms/yum-utils-1.1.30-42.0.1.el6_10.noarch.rpm
    Release Change: 40.0.1.el6 --> 42.0.1.el6_10

我需要将输出格式化为三列,第一列为pkgname第二列为“旧版本”,第三列为“新版本”:

 xorg-x11-drv-ati-firmware-7.6.1-3.el6_9.noarch 3.el6_9 4.el6
    yum-utils-1.1.30-40.0.1.el6.noarch 40.0.1.el6 42.0.1.el6_10
    yum-utils-1.1.30-40.0.1.el6.noarch 40.0.1.el6 42.0.1.el6_10

我正在尝试的是:

grep -i 'Package list' pkglist |  awk '{print $3}'
    xorg-x11-drv-ati-firmware-7.6.1-3.el6_9.noarch
    yum-plugin-fastestmirror-1.1.30-40.0.1.el6.noarch
    yum-utils-1.1.30-40.0.1.el6.noarch



 grep -A 2 'Package list' pkglist | grep -i 'Release' | awk '{print $3,$5}'
    3.el6_9 4.el6

    40.0.1.el6 42.0.1.el6_10

    40.0.1.el6 42.0.1.el6_10

以上两个命令的输出需要在每行中添加为三列。

1 个答案:

答案 0 :(得分:0)

awk '/Package list/{printf $3 OFS}/Release Change/{print $3, $5}' pkglist

返回

xorg-x11-drv-ati-firmware-7.6.1-3.el6_9.noarch 3.el6_9 4.el6
yum-plugin-fastestmirror-1.1.30-40.0.1.el6.noarch 40.0.1.el6 42.0.1.el6_10
yum-utils-1.1.30-40.0.1.el6.noarch 40.0.1.el6 42.0.1.el6_10