2016年1月25日 星期一

BASH 正規表示式 - 筆記

此篇是為了紀錄在 iT邦的系列文章 我與BASH的每一天 裡面所寫的內容非常實用,統整了所寫的內容紀錄正規表示式

 

*代表萬用
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 正規表示式 - 筆記

沒有留言:

張貼留言