Site icon Mr. 沙先生

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

 

 

 

 

 

Exit mobile version