此篇是為了紀錄在 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