RedHatを使用しているので、Releaseフィールドの値を取得する必要があります。例として「wget」を取り上げます。
これが私が得ると期待される出力です
WGET: 1.4.el6
これがrpm-qiwgetからの出力です
[luke@machine ~]# rpm -qi wget
Name : wget Relocations: (not relocatable)
Version : 1.12 Vendor: Red Hat, Inc.
Release : 1.4.el6 Build Date: Mon May 10 14:56:18 2010
Install Date: Wed Oct 3 16:48:58 2012 Build Host: x86-012.build.bos.redhat.com
Group : Applications/Internet Source RPM: wget-1.12-1.4.el6.src.rpm
Size : 1877597 License: GPLv3+ and GFDL
Signature : RSA/8, Mon Aug 16 21:21:35 2010, Key ID 199e2f91fd431d51
Packager : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
URL : http://wget.sunsite.dk/
Summary : A utility for retrieving files using the HTTP or FTP protocols
リリースフィールドから「1.4.el6」を抽出するスクリプトを作成するにはどうすればよいですか。
私は現在持っています
#!/bin/bash
RELwg= rpm -qi wget
# Do string manipulation of $RELwg here
wg="WGET: "
echo $wg$RELwg
しかし、これが私が得た出力です。
Release : 1.4.el6 Build Date: Mon May 10 14:56:18 2010
WGET:
数値を取得するには、文字列を抽出する必要があることを知っています。
- 1のインデックスを取得します。常に15で一定のようです。
- ビルド日のBのインデックスを取得します
- 15とBの間のサブ文字列を取得します
現在のスクリプトで「RELwg=rpm -qi wget」の間のスペースを削除すると、次のようなエラーが発生します。
./GetRPMVersions.sh:12行目:-qi:コマンドが見つかりません
主に私の現在の苦境は、rpm-qiwgetの出力を追加することです。grep変数にリリースします。
文字列操作に関する入力は大歓迎です。