*代表萬用
find . -name '*.php'
^代表字首
cat test.log | grep ^str
[a-z] , [A-Z] , [0-9] 可表示任意數,英文大小寫有異
$ ls -lh
-rw-r----- 1 root root 212M 2015-12-08 11:33 access.log
drwxr-xr-x 3 root root 4.0K 2015-10-14 20:55 zh_TW.utf8
$ ls -lh | grep [0-9][0-9][0-9]M
-rw-r----- 1 root root 212M 2015-12-08 11:33 access.log
承上 [0-9] 的方法可以用 \{x,y\} 的方式來取代,用來代表出現 x 次:正規表示法3
$ ls -lh | egrep [0-9]\{3\}M
-rw-r----- 1 root root 212M 2015-12-08 11:33 access.log
$ ls -lh | egrep [0-9]\{2\}M
-rw-r--r-- 1 root root 25M 2015-11-13 12:24 cloud.log
-rw-r----- 1 root root 212M 2015-12-08 11:33 access.log
$ ls -lh | egrep [0-9]\{1\}M
-rw-r--r-- 1 root root 25M 2015-11-13 12:24 cloud.log
-rw-r--r-- 1 root root 1.3M 2015-11-23 12:54 free.log
-rw-r----- 1 root root 212M 2015-12-08 11:33 access.log
依照可能出現的次數來設定,越能確定數值範圍搜尋到的就越精準。
PS: grep 若要完全採用正規表示法,就必須改用 egrep。
將 ^放入 [ ] 中代表 not 的意思
$ ls | grep ^c
cloud.log
$ ls | grep [^c]
free.log
access.log
Orignal From: BASH 正規表示式 - 筆記
沒有留言:
張貼留言