1. 程式人生 > >Shell 基礎正則表示式

Shell 基礎正則表示式

正則表示式與萬用字元
1)正則表示式用來在檔案中匹配符合條件的字串,正則是包含匹配。Grep、awk、sed等命令可以支援正則表示式。
2)萬用字元用來匹配符合條件的檔名,萬用字元是完全匹配。ls、find、cp這些命令不支援正則表示式,所以只能使用shell自己的萬用字元來進行匹配了。

這裡寫圖片描述
“*”表示前一個字元匹配0次,或任意多次
例1:grep “a*” test.sh
注:匹配所有內容,包括空白行

例2:grep “aa*” test.sh
注:匹配至少包含有一個a的行

例3:grep “aaa*” test.sh
注:匹配最少包含兩個連續a的字串

例4:grep “aaaaa*” test.sh
注:匹配最少包含四個連續a的字串
“.”表示匹配除了換行符外任意一個字元
例1:grep “s..d” test.sh
注:”s..d”會匹配在s和d這兩個字母之間一定有兩個字元的單詞

例2:grep “s.*d” test.sh
注:匹配在s和d字母之間有任意字元

例3:grep “.*” test.sh
注:匹配所有內容

“^”表示匹配行首
例:grep “^M” test.sh
注:匹配以大寫”M”開頭的行

1
g r e p n
” test.sh
注:匹配以小寫”n”結尾的行

例2:grep –n “^$” tesh.sh
注:會匹配空白行,-n顯示行號

“[^]”表示匹配除中括號的字元以外的任意一個字元
例1:grep “^[^a-z]” test.sh
注:匹配不用小寫字母開頭的行

例2:grep ”^[^a-zA-Z]” test.sh
注:匹配不用字母開頭的行