【Shell】 基础正則符號

利用Grep命令加參數 -o 顯示抓取的内容
正則符號有兩類,基礎正則和擴展正則:

基礎正則 内容
^ 以...開頭
$ 以...結尾
^$ 空行
. 任意一個字符
* 前一個字符連續出現0次或者0次以上
.* 相當與Shell裏面的*,所有内容
[a-z] 或a或b.. 1次匹配1個字符
1 非或a或b.. 或z
\ 轉義字符
1)*前一個字符連續出現0次或者0次以上
[d5118267@hkl20102859 ~]$ grep -o '0*' test.txt 0 0 0 000 [d5118267@hkl20102859 ~]$ grep '0*' test.txt I am IT ! > I teach ETL! > I like badminton ball. billiard ball and Chinese Chess! > my blog is http://simon.blog.51cto.com > our size is http://blog.oldbody.com > my qq is 1395520340 > not 1364630646000 > > my god , i am not player but a great engineer > EOF

2)\ 轉義字符:還原之前的含義
  • 匹配出文件中結尾的行
  • 轉義字符序列: \n 回車換行 \t tab鍵
    返回最後任意一個字節 grep '.$'
【Shell】 基础正則符號
文章图片

提取最後一個字節,剛好"." grep '.$'
【Shell】 基础正則符號
文章图片

3) $ 以什么作爲結尾
grep '!$' test.txt I am IT ! > I teach ETL! > I like badminton ball. billiard ball and Chinese Chess!

4) 正則貪婪性
開始到中間任意字符,直到最後出現字符o
grep '^.*o' test.txt
【Shell】 基础正則符號
文章图片

【【Shell】 基础正則符號】5 [] 一次只匹配裏面某一個字符
注意:[]裏面的内容去掉特殊含義
[a-z] 小寫字母 a-z
[A-Z] 大寫字母 a-z
[0-9] 數字
[0-9a-zA-Z] == [0-9a-Z] 數字和字符
[0-9|A-Z|a-z] 匹配大小寫字母和數字,匹配|
  1. a-z ?

    推荐阅读