iT邦幫忙

DAY 8
4

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

我與BASH的每一天 - [8] grep指令的妙用 - 2

  • 分享至 

  • xImage
  •  

除了跟’awk’搭配使用之外,'grep’跟''cut'搭配使用也很常見。設想我今天要在某部機器上進行compile的動作前,我要先確定機器上使否有裝’gcc’,也要確定裝的版本合不合我的需求,我就會透過下面的例子,先經由'grep'去’rpm -qa’的結果中撈出'gcc',在借助'cut'命令擷出'gcc'的版本編號:

# rpm -qa可以列出所有已安裝的RPM package
# 再經由 grep gcc 將有關gcc的內容撈出來
rpm -qa | grep gcc 
gcc-4.1.2-50.el5

# 透過兩次cut動作來進行篩選
# 第一次根據'-'符號來切出: 4.1.2-50.el5
# 第二次根據'.'符號來切出: 4.1.2-50
rpm -qa | grep gcc | cut -f2- -d- | cut -f1,2,3 -d.
4.1.2-50

補充說明一下,'cut'命令可以一次列出多個欄位的內容,方法就如上面的例子,在'-f'參數後利用','逗號指出要輸出的欄位,或是利用'-'符號皆在數字之後,代表從這個欄位之後的所有內容都輸出。而欄位的分隔符號由'-d'來定義。

[本系列文章]

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


上一篇
我與BASH的每一天 - [7] grep指令的妙用 - 1
下一篇
我與BASH的每一天 - [9] 正規化表示法 - 1
系列文
我與BASH shell scripting的每一天31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
hepha
iT邦新手 5 級 ‧ 2018-10-18 12:58:20

rpm -qa | grep -Po '(?<=gcc-)[^-]+[^.]*'

我要留言

立即登入留言