除了跟’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