使用 shell 命令从 yum 命令历史中检索补丁名称
Retrieving the patch name from yum command history using shell command
我正在使用命令获取补丁列表:
sudo yum --setopt=history_list_view=commands history list all
输出:
ID | Command line | Date and time | Action(s) | Altered
13 | remove wget | 2018-10-16 08:56 | Erase | 2
12 | install sssd-1.12.4-47.e | 2018-10-16 03:09 | Update | 4 ss
11 | install unzip-6.0-2.el6_ | 2018-10-15 09:27 | Update | 1
10 | install sqlite-3.6.20-1. | 2018-10-15 09:26 | Update | 1
9 | install pam-1.1.1-20.el6 | 2018-10-15 09:22 | Update | 1
8 | install libxml2-python-2 | 2018-10-15 09:20 | Update | 2
7 | install curl.x86_64 | 2018-10-15 08:56 | Update | 2
6 | install dhclient.x86_64 | 2018-10-15 08:55 | Update | 2
5 | install openssh.x86_64 | 2018-10-15 08:50 | Update | 3
4 | install samba-winbind-3. | 2018-10-15 04:59 | Update | 4
3 | install zsh-html.x86_64 | 2018-10-12 06:57 | Install | 1
2 | install samba | 2017-01-05 03:17 | I, U | 5
1 | install wget | 2017-01-05 03:08 | Update | 1
如何处理并仅从命令行列中获取补丁名称?
你可以只获取包名使用awk
这样的方式:
sudo yum --setopt=history_list_view=commands history list all | awk -F '|' 'NR>2{print }' | awk 'NF{print }'
第一个 awk 表达式将每个字符串按 |
字符拆分并给出第二列(前两行 NR>2
除外,它们描述了 table).第二个 awk 表达式将第二列拆分为 space-character 并为您提供包名称,同时过滤空行 (more info about NF in awk).
输出如下:
curl.x86_64
dhclient.x86_64
openssh.x86_64
zsh-html.x86_64
samba
wget
如果您需要一些过滤,例如通过Action
字段,首先需要额外的grep
。
我正在使用命令获取补丁列表:
sudo yum --setopt=history_list_view=commands history list all
输出:
ID | Command line | Date and time | Action(s) | Altered
13 | remove wget | 2018-10-16 08:56 | Erase | 2
12 | install sssd-1.12.4-47.e | 2018-10-16 03:09 | Update | 4 ss
11 | install unzip-6.0-2.el6_ | 2018-10-15 09:27 | Update | 1
10 | install sqlite-3.6.20-1. | 2018-10-15 09:26 | Update | 1
9 | install pam-1.1.1-20.el6 | 2018-10-15 09:22 | Update | 1
8 | install libxml2-python-2 | 2018-10-15 09:20 | Update | 2
7 | install curl.x86_64 | 2018-10-15 08:56 | Update | 2
6 | install dhclient.x86_64 | 2018-10-15 08:55 | Update | 2
5 | install openssh.x86_64 | 2018-10-15 08:50 | Update | 3
4 | install samba-winbind-3. | 2018-10-15 04:59 | Update | 4
3 | install zsh-html.x86_64 | 2018-10-12 06:57 | Install | 1
2 | install samba | 2017-01-05 03:17 | I, U | 5
1 | install wget | 2017-01-05 03:08 | Update | 1
如何处理并仅从命令行列中获取补丁名称?
你可以只获取包名使用awk
这样的方式:
sudo yum --setopt=history_list_view=commands history list all | awk -F '|' 'NR>2{print }' | awk 'NF{print }'
第一个 awk 表达式将每个字符串按 |
字符拆分并给出第二列(前两行 NR>2
除外,它们描述了 table).第二个 awk 表达式将第二列拆分为 space-character 并为您提供包名称,同时过滤空行 (more info about NF in awk).
输出如下:
curl.x86_64
dhclient.x86_64
openssh.x86_64
zsh-html.x86_64
samba
wget
如果您需要一些过滤,例如通过Action
字段,首先需要额外的grep
。