我在 RedHat 上,我需要获取 Release 字段中的值。以“wget”为例。
这是我期望得到的输出
WGET: 1.4.el6
这是 rpm -qi wget 的输出
[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
如何编写脚本以从 Release 字段中提取“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 在 Build Date 中的索引
- 获取介于 15 和 B 之间的子字符串
在我当前的脚本中删除“RELwg = rpm -qi wget”之间的空格,我只是得到一个错误说
./GetRPMVersions.sh:第 12 行:-qi:找不到命令
主要是我目前的困境是添加 rpm -qi wget | 的输出 grep 释放到一个变量。
欢迎任何关于字符串操作的输入。