昨天的這個做法去找超過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