Linux shell 腳本示例(二)

一、正則表達式
a、基本正則表達式

元字符 描述
. 匹配任意單個字符
* 匹配其前面的字符任意次
.* 任意長度的任意字符
[] 匹配指定範圍內的任意單個字符
[^] 匹配指定範圍外的任意單個字符
[:lower:] 小寫字母
[:upper:] 大寫字母
[:alpha:] 所有字母
[:digit:] 數字
[:alnum:] 所有數字和字母
[:punct:] 標點符號
[:space:] 空白字符
\? 匹配其前面的字符1次或0次
{m,n} 匹配其前面的字符至少m次,至多n次
^ 鉚定行首,此字符後面的任意內容必須出現在行首
$ 鉚定行尾,此字符前面的任意內容必須出現在行尾
^$ 表示空白行
\<或\b 鉚定詞首,其後面的任意字符必須作爲單詞的首部出現
\>或\b 鉚定詞尾,其前面的任意字符必須作爲單詞的尾部出現
() 分組
(ab)* ab作爲一個整體,可以出現任意次
(ab).*\1 引用第一個左括號以及與之對應的右括號所包括的所有內容
(ab).*\2 引用第二個左括號以及與之對應的右括號所包括的所有內容

b、擴展整個表達式

. 匹配任意單個字符
[] 匹配指定範圍內的任意單個字符
[^] 匹配指定範圍外的任意單個字符
* 匹配其前字符任意次
? 匹配其前字符0次或1次
+ 匹配其前字符至少1次,類似於基本正則表達式{1,}
{m,n} 匹配其前面的字符至少m次,至多n次
^ 行首
$ 行尾
\<或\b 詞首
\>或\b 詞尾

c、實例
cp一份/etc/passwd文件到/tmp

#查找特定的關鍵字
grep -n "ntp" /tmp/passwd 
#對查找結果進行取反
grep -vn "ntp" /tmp/passwd 
#利用[]查找集合字符
 grep -n "p[ou]" /tmp/passwd 
#利用^取反
 grep -n "p[^o]" /tmp/passwd 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章