вывод двух команд нужно добавить как столбцы awk - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть файл, который содержит имя пакета и его выпуск. Строка изменения выпуска имеет как старую, так и новую версию:

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

Мне нужен форматированный вывод в виде трех столбцов с 1-м столбцом в качестве pkgname 2-го столбцакак «старая версия» и 3-й столбец как «новая версия»:

 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 голосов
/ 29 ноября 2018
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
...