最近一直在研究shell腳本這塊,剛好閑下來整了下自己手頭上比較好的資料中的一些范例,以下是我整理的鳥哥私房菜里面正則表達式里面比較基礎的一些語法詳解,適合新手查閱。
首先先復制一段范例:
代碼如下:
# vi regular_express.txt
-------------------------------
"Open Source" is a good mechanism to develop programs.
apple is my favorite food.
Football game is not use feet only.
this dress doesn't fit me.
However, this dress is about $ 3183 dollars.
GNU is free air not free beer.
Her hair is very beauty.
I can't finish the test.
Oh! The soup taste good.
motorcycle is cheap than car.
This window is clear.
the symbol '*' is represented as start.
Oh!My god!
The gd software is a library for drafting programs.
You are the best is mean you are the no. 1.
The world <Happy> is the same with "glad".
I like dog.
google is the best tools for search keyword.
goooooogle yes!
go! go! Let's go.
# I am VBird
--------------------------------
設置語系為C
代碼如下:#export LANG=C
grep
1.搜尋特定字符串"the"
注: n為顯示行號
代碼如下:# grep -n 'the' regular_express.txt
2.反向搜尋特定字符串"the"
代碼如下:# grep -vn 'the' regular_express.txt
3.取得任意大小寫"the"的這個字符串
代碼如下:# grep -in 'the' regular_express.txt
4.利用括號 [] 來搜尋集合字符
搜索test或taste這兩個單詞時,發現他們有共同的't?st',所以可以這么搜尋
代碼如下:# grep -n 't[ae]st' regular_express.txt
這樣其實就是在找t[a]st和t[e]st這兩個分開的字符
如果搜索有 oo 的字符時,則可以使用:
代碼如下:# grep -n 'oo' regular_express.txt
如果搜索oo時不想搜到 oo 前面有 g 的話,我們可以利用反向選擇[^]來達成:
代碼如下:# grep -n '[^g]oo' regular_express.txt
如果搜索oo前面不想有小寫字符,則:
代碼如下:# grep -n '[^a-z]oo' regular_express.txt
注: 大寫英文/小寫英文/數字 可以使用 [a-z]/[A-Z]/[0-9]等方式來書寫,也可以寫在一起
[a-zA-Z0-9]表示要求字符串是數字以及英文
如果我們要取得有數字的那行,則:
代碼如下:# grep -n '[0-9]' regular_express.txt
注:但考慮到語系對編碼順序的影響,因此除了連續編碼使用減號[-]外,也可以用[:lower:]代替a-z 以及 [:digit:] 代替0-9 使用
代碼如下:# grep -n '[^[:lower:]]oo' regular_express.txt
# grep -n '[[:digit:]]' regular_express.txt
5.顯示行首為'the'的字符串
代碼如下:# grep -n '^the' regular_express.txt
顯示行首是小寫字符
代碼如下:# grep -n '^[a-z]' regular_express.txt
6.顯示行尾為點 . 的那一行
新聞熱點
疑難解答