iT邦幫忙

DAY 11
4

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

我與BASH的每一天 - [11] 正規化表示法 - 3

昨天的這個做法去找超過100K的檔案有點囉說,因為要找多少個數字就要用多少個**[0-9]**符號。其實正規化表示法也可以表達字元出現的特定次數,像是我們可以指示出現數字三個以上。

正規化表示法表示字元次數的方式有:
\{x,y\},表示出現x到y次,例如**\{2,3\}表示2到3次。
\{x\},表示出現x次,例如
\{3\}表示3次。
\{x,\},表示出現x次以上,例如
\{2,\}**表示2次以上。

其中**\反斜線是溢出字元,代表要忽略{}符號,因為它們的用途是要定義,而非搜尋的目標。另外要注意的是,當我們進一步在grep命令中採用正規表示法時,我們要改用egrep[**命令,方能完整支援正規化表示。

ls -lh
-r-xr-xr-x 1 root root 589K Sep 12 20:16 al-2.00-74.i386.rpm
-r-xr-xr-x 1 root root 601K Sep 12 20:16 al-2.00-74.x86_64.rpm
-rwxr-xr-x 1 root root  69K Sep 12 20:16 dsinstall.sh
-r-xr-xr-x 1 root root  14K Sep 12 20:16 dsuninstall.sh
-r-xr-xr-x 1 root root 6.8K Sep 12 20:16 rollback-build

ls -lh | grep [0-9]\{3\}K
# grep 沒東西

ls -lh | egrep [0-9]\{3\}K 
-r-xr-xr-x 1 root root 589K Sep 12 20:16 al-2.00-74.i386.rpm
-r-xr-xr-x 1 root root 601K Sep 12 20:16 al-2.00-74.x86_64.rpm

[本系列文章]

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


上一篇
我與BASH的每一天 - [10] 正規化表示法 - 2
下一篇
我與BASH的每一天 - [12] 正規化表示法 - 4
系列文
我與BASH shell scripting的每一天31

尚未有邦友留言

立即登入留言