iT邦幫忙

DAY 7
2

我與BASH shell scripting的每一天系列 第 7

我與BASH的每一天 - [7] grep指令的妙用 - 1

  • 分享至 

  • xImage
  •  

說到用的最頻繁的bash指令,非'grep'莫屬了。當我需要尋找特定字串時,'grep'指令永遠都派得上場。前面提到了那麼多方法來獲取特定字串的片段,但是在實際的用途中,常常是需要先透過'grep'找出需要的字串,再透過’awk’'cut'來取得特定片段。

舉例來說,我想要撈出系統中Qlogic FC HBA卡的driver版本,我知道必須先要用’modinfo qla2xxx’去叫出qla2xxx這個module的所有資訊,而我知道版本編號是記錄在'version:'這欄裡,所以我可以透過'grep'的方法取到他。但是如果我想要更精確地取出版本編號這個字串的內容,我就需要借助’awk’的協助了。

#先透過 modinfo qla2xxx 去叫出qla2xxx這個module的所有資訊
# modinfo qla2xxx
filename:       /lib/modules/2.6.18-238.el5PAE/kernel/drivers/scsi/qla2xxx/qla2xxx.ko
version:        8.03.01.05.05.06-k
license:        GPL
description:    QLogic Fibre Channel HBA Driver
...
#再透過 grep version 取找出記錄著版本編號這行 (version:        8.03.01.05.05.06-k)
#接著透過 awk ‘{print $2}’ 踢掉 version 這個字,僅留下真正的版本編號
#因為在version這列裡(version:        8.03.01.05.05.06-k)編號是屬於第二欄,所以就直接印出$2的內容。
modinfo qla2xxx | grep ^version | awk '{ print $2 }'
8.03.01.05.05.06-k

[本系列文章]

我與BASH的每一天 - [1]利用bc命令來取得數字字串中的特定欄位值
我與BASH的每一天 - [2]直取字串變數中的特定欄位值
我與BASH的每一天 - [3] 利用awk來擷取特定欄位
我與BASH的每一天 - [4] 利用awk來擷取特定欄位-2
我與BASH的每一天 - [5] 利用awk來擷取特定欄位-3
我與BASH的每一天 - [6] 利用cut來擷取特定欄位


上一篇
我與BASH的每一天 - [6] 利用cut來擷取特定欄位
下一篇
我與BASH的每一天 - [8] grep指令的妙用 - 2
系列文
我與BASH shell scripting的每一天31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
hepha
iT邦新手 5 級 ‧ 2018-10-18 12:27:57

modinfo qla2xxx | awk '/^version/ {print $2}'
8.03.01.05.05.06-k

我要留言

立即登入留言