rpm –qf ( –queryformat )/出力フォーマットを指定【Linuxコマンド】

rpm --qf ( --queryformat ) 出力フォーマットを指定【Linuxコマンド】

rpm は、パッケージ管理コマンドで、Red Hat系のLinuxディストリビューションで使われる「RPM(Red Hat Package Manager)パッケージ」を扱うことができます。

この記事では、rpm コマンドの出力フォーマットを指定できるオプション --qf (queryformat) について説明します。

rpm –qf ( –queryformat )/出力フォーマットを指定【Linuxコマンド】

環境

  • ホストOS:Windows10
  • ゲストOS:CentOS7
  • ゲストOSは、VirtualBoxとVagrantで構築

rpm -qa でパッケージ一覧の表示

rpm -qa で、インストール済みパッケージの一覧を表示します。

-q (--query):問い合わせ(パッケージ情報の表示と検索)
-a(--all):インストールされているパッケージを一覧表示する

これだけですと、数が多いので、さらに grep コマンドで“rpm”が含まれるパッケージを絞り込んで表示します。

$ rpm -qa | grep rpm
rpm-libs-4.11.3-45.el7.x86_64
rpm-build-libs-4.11.3-45.el7.x86_64
deltarpm-3.6-3.el7.x86_64
python-deltarpm-3.6-3.el7.x86_64
rpm-4.11.3-45.el7.x86_64
rpm-python-4.11.3-45.el7.x86_64

–queryformat で出力フォーマットを指定

実際に、出力フォーマットを指定するオプション --queryformat を使ってみます。

–queryformat の後に、引用符(”◯◯” or ‘◯◯’)で囲み、%{NAME} のように出力したいフォーマットを指定します。
この NAME の部分を「タグ」と呼びます。

以下は、パッケージ名とサイズを出力する例です。
改行をするために、\n も使ってます。

$ rpm -qa --queryformat "%{NAME} %{SIZE}\n" | grep rpm
rpm-libs 611384
rpm-build-libs 166664
deltarpm 214487
python-deltarpm 47234
rpm 2622621
rpm-python 149762

数字やマイナスの符合を組み合わせることで、文字列の間隔や、右詰め・左詰めなどを指定することができます。
以下は、パッケージ名を20バイトの幅で左詰めに出力し、サイズを10バイトの幅で右詰めに出力する例です。

$ rpm -qa --queryformat "%-20{NAME} %10{SIZE}\n" | grep rpm
rpm-libs                 611384
rpm-build-libs           166664
deltarpm                 214487
python-deltarpm           47234
rpm                     2622621
rpm-python                14976

–querytags オプションで利用できる全てのタグを表示

rpm –querytags コマンドで利用できる全てのタグを表示することができます。

$ rpm --querytags
ARCH
ARCHIVESIZE
BASENAMES
BUGURL
BUILDARCHS
BUILDHOST
BUILDTIME
C
CHANGELOGNAME
CHANGELOGTEXT
CHANGELOGTIME
:

行数を表示するコマンド wc -l で確認してみると、 205個ありました。

$ rpm --querytags | wc -l
205

以上、出力フォーマットを指定できるオプション --qf (queryformat) について説明しました。