這一章主要寫的是shell指令碼中的正則表達式,能夠快速瞭解shell指令碼中的一些常用的技能,能夠快速掌握shell中的一些快捷功能(* ^ - ^ *)
目錄
型別 | 含義 | 範例 | 說明 |
---|---|---|---|
^ | 匹配行首 | ^abc | 以abc開頭的行 |
^# | 以#號開頭的行(比如註釋行) | ||
$ | 匹配行尾 | abc$ | 以abc結尾的行 |
^$ | 空行 | ||
. | 單個字元 | . | 除換行符(\n)以外的任意單個字 |
grep 「^root」 /etc/passwd 找以root開頭的行
grep 「bash$」 /etc/passd 找以bash結尾的行
grep 「r…」 /etc/passwd 含r開頭的四字元的行
grep "ro.." /etc/passwd 含ro開頭的四個字元的行
grep "roo." /etc/passwd 含roo開頭的四個字元的行
型別 | 含義 | 範例 | 說明 |
---|---|---|---|
{n} | 匹配n次 | (ab){3} | 匹配ababab |
{n,m} | 匹配n-m次 | (ab){1,3} | 匹配ab、abab、ababab |
{n,} | 匹配至少n次 | (ab){2,} | 匹配2個及以上連續的ab |
grep "rao\{2\}t" user 找root,o只能出現2次
grep "rao\{1,2\}t" /etc/passwd 找raot 或者 raoot, o是1個或0是2個
grep "rao\{2,\}t" /etc/passwd 找raoot、raooot、raoo…t,含oo兩個以上
grep "0:\{2\}" /etc/passwd 找0::
grep "\(0:\)\{2\}" /etc/passdw 找0:0:
egrep "(0:){2}" /etc/passwd 使用擴充套件正則,效果同上
grep -E "(0:){2}" e/tc/passwd 使用擴充套件正則,效果同上
egrep "ro{1}t" /etc/passwd 找rot
egrep "ro{2}t" /etc/passwd 找root
(匹配指定字元集合內的任何一個字元,[ ] 內加^可取反)
grep "[rot]" /etc/passwd 找含root字母的行
grep "[a-z]" /etc/passwd 找含有小寫字母的行
grep "[A-Z]" /etc/passwd 找含有大寫字母的行
grep "[0-9]" /etc/passwd 找含有數位的行
grep "[^0-9]" /etc/passwd 找不數位的行
\ 爲跳脫符號,可以爲一些普通字元賦予特殊含義、或者將一些特殊字元變爲普通字元
grep "\(0:\)\{2\}" /etc/passdw 找0:0:
egrep "(0:){2}" /etc/passwd 使用擴充套件正則,效果同上
grep -E "(0:){2}" /etc/passwd 使用擴充套件正則,效果同上
egrep "a|b" /etc/passwd 找含a或者b
egrep "the\b" /etc/passwd 找the,e後面只能爲空
egrep "\<ro" /etc/passwd 找含ro開頭
egrep "\<the\>" /etc/passwd 找the,前後爲空
egrep "\woot" /etc/passwd 找*oot ,w代表任意
egrep "\sthe" /etc/passwd 找the ,the前面要空格
egrep "(the)+" /etc/passwd 找一個the或者多個
egrep "(the)?" /etc/passwd 找0個the或者1個
egrep "(the)*" /etc/passw 找0個the或者連續多個
egrep "(the).*" /etc/passwd 任意長度的任意字串
結束啦
這篇的基本介紹就先寫到這裏,後面會繼續更新shell指令碼的一些常用的用法以及後面企業中一些實用的shell指令碼的運用,感謝你們的瀏覽,也希望對你們有所幫助,你的點贊是我努力的動力,謝謝你們!