rpm -q — & gt; запросить только дескрипт

Я могу запросить информацию о rpm-пакете с

rpm -qi <rpm-package-name>

Пример-результат запроса:

tfaa004:/sm/bin # rpm -qi expect-5.45-16.1.3.i586
Name        : expect
Version     : 5.45
Release     : 16.1.3
Architecture: i586
Install Date: Di 27 Jun 2017 15:31:08 CEST
Group       : Development/Languages/Tcl
Size        : 674166
License     : SUSE-Public-Domain
Signature   : RSA/SHA256, Do 25 Sep 2014 11:42:26 CEST, Key ID b88b2fd43dbdc284
Source RPM  : expect-5.45-16.1.3.src.rpm
Build Date  : Do 25 Sep 2014 11:42:16 CEST
Build Host  : cloud120
Relocations : (not relocatable)
Packager    : http://bugs.opensuse.org
Vendor      : openSUSE
URL         : http://expect.nist.gov
Summary     : A Tool for Automating Interactive Programs
Description :
Expect is a tool primarily for automating interactive applications,
such as telnet, ftp, passwd, fsck, rlogin, tip, and more.  Expect
really makes this stuff trivial.  Expect is also useful for testing
these applications.  It is described in many books, articles, papers,
and FAQs.  There is an entire book on it available from O'Reilly.
Distribution: openSUSE 13.2

Но я хочу только запросить описание. Это возможно?
Причина в том, что я хочу обработать эту информацию (описание) в программе на C ++ (я делаю это с помощью popen ()).

Может быть, что-то вроде этого:

rpm -qi -Description expect-5.45-16.1.3.i586

1

Решение

Это правильное решение:

rpm -q --queryformat '%{DESCRIPTION}\n'  expect-5.45-16.1.3.i586
4

Другие решения

[РЕДАКТИРОВАТЬ для оборотов в openSUSE]:

Это будет печатать только строки между «Описание» и «Распределение»

[Ниже приведены команды для дистрибутивов RHEL]

Я не верю, что утилита «rpm» имеет флаг для распечатки только поля «Description», но это так же просто, как использовать трубу 🙂

Вы могли бы сделать:

Который будет печатать каждую строку после того, как найден шаблон «Описание».

Или, если вы более склонны использовать «grep»:

флаг «-A n» указывает grep печатать n строк после того, как шаблон найден.

*** Edit: вы также можете использовать «sed»:

Надеюсь это поможет.

1

По вопросам рекламы [email protected]