Есть ли способ эффективно объединить две нижеследующие команды UNIX в одну цепочку команд? - PullRequest
0 голосов
/ 25 января 2020

Постановка проблемы

  1. Я хотел бы идентифицировать пакет и его описание, используя rpm -qi ${pkgName}.
  2. cat -n на выходе из (1) даст мне, какая строка в разделе описания подопечных начинается.

    Пример: - 15-я строка в случае редактора атомов IDE в оборотах в минуту.

  3. Я знаю, что могу снова решить часть вывода и форматирования, используя этот номер строки как rpm -qi atom | awk -v n=${lineNum} 'NR>=n' , Здесь lineNum было бы 15.

Это неэффективно, и я хотел бы использовать команду rpm -qi только один раз, а затем добиться этого, извлекая раздел описания на палатах. У кого-нибудь есть способ сделать это?

Дополнительный запрошенный ввод

[anand@ldnpsr2937 ~]$rpm -qi atom
Name.       : atom
Version     : 1.42.0
Release     : 0.1
Architecture: x86_64
Install Date: Sun 12 Jan 2020 10:23:12 AM
Group       : Unspecified
Size        : 590646918
License     : MIT
Signature   : (none)
Source RPM  : atom-1.42.0-0.1.src.rpm
Build Date  : Sat 14 Dec 2019 03:38:56 AM
Build Host  : 2580f855e2eb
Relocations : /usr
URL         : https://atom.io/
Summary     : A hackable text editor for the 21st Century.
Description : 
A hackable text editor for the 21st Century.
[anand@ldnpsr2937 ~]$

Ответы [ 2 ]

5 голосов
/ 25 января 2020

Вместо комбинирования чего-либо, просто используйте команду rpm для запроса указанного тега c. Нет sed и модные вещи нужны вообще.

rpm -q --queryformat '%{description}' atom
1 голос
/ 25 января 2020

Возможно, вы хотели что-то вроде:

rpm -qi atom | sed -ne '/^Description/,$ p'

Где мы используем sed, чтобы напечатать все после совпавшей строки. Но, как показано в другом ответе, rpm имеет собственный метод для достижения этой цели.

...