Linux:正則表達式及:grep工具

  1. 什麼是正則表達式:

    正則表達式就是處理字符串的方法,他是以行爲單位來進行字符串的處理行爲,正則表達式通過一些特殊符號的輔助,可以讓用戶輕易達到查找,刪除,替換某種特定字符串的處理程序,其實就像相當與添加位置限定符,數量限定符,字符想定符來進行範圍縮減匹配。


2.grep工具:

   首先grep就是一個查找工具,然後通過正則表達式完成字符串的搜索。

   存在3種限定符:

首先是字符限定符:

650) this.width=650;" src="http://s5.51cto.com/wyfs02/M01/83/3B/wKioL1ds-b7znjbDAAC02XtIx6o155.png" style="float:none;" title="QQ圖片20160624171053.png" alt="wKioL1ds-b7znjbDAAC02XtIx6o155.png" />

數量限定符:

650) this.width=650;" src="http://s5.51cto.com/wyfs02/M01/83/3B/wKiom1ds-b6AqpxkAADuk6KOFII285.png" style="float:none;" title="QQ圖片20160624171109.png" alt="wKiom1ds-b6AqpxkAADuk6KOFII285.png" />

650) this.width=650;" src="http://s2.51cto.com/wyfs02/M00/83/3B/wKiom1ds-b-y8zbmAABOzC1hDBE800.png" style="float:none;" title="QQ圖片20160624171127.png" alt="wKiom1ds-b-y8zbmAABOzC1hDBE800.png" />

位置限定符:

650) this.width=650;" src="http://s1.51cto.com/wyfs02/M01/83/3B/wKioL1ds-cDgmsXrAACyIbvf5CM604.png" style="float:none;" title="QQ圖片20160624171138.png" alt="wKioL1ds-cDgmsXrAACyIbvf5CM604.png" />

其他限定符:

650) this.width=650;" src="http://s1.51cto.com/wyfs02/M02/83/3B/wKioL1ds-cHx_dW5AACi_VlN2vI614.png" style="float:none;" title="QQ圖片20160624171147.png" alt="wKioL1ds-cHx_dW5AACi_VlN2vI614.png" />

是grep正則表達式的Extended規範,Basic規範也有這些語法,只是字符?+{}|()應

解釋爲普通字符,要表示上述特殊含義則需要加\轉義。如果用grep而不是egrep,並且不加-E

參數,則應該遵照Basic規範來寫正則表達式。 (一定要注意!!!!!)


下面我們主要來說一下grep的各種選項,並結合上以上的各種限定符來使用一下:

常用的grep選項有:
-c 只輸出匹配行的計數。
-i 不區分大小寫(只適用於單字符)。
-h 查詢多文件時不顯示文件名。
-l 查詢多文件時只輸出包含匹配字符的文件名。
-n 顯示匹配行及行號。
-s 不顯示不存在或無匹配文本的錯誤信息。
-v 顯示不包含匹配文本的所有行。


一個一個來:

首先我們在終端下輸入命令:count=0;while [ $count -le 100 ];do echo "hello abc $count">>file;let count++;done 


創建一個100行的file文件:

-c:只輸出匹配行的計數。

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M02/83/3C/wKiom1dtAKryC4aGAAA9yAOnhHU585.png" title="QQ圖片20160624174252.png" alt="wKiom1dtAKryC4aGAAA9yAOnhHU585.png" />

-------------------------------------------------------------------------------------------


-i:不區分大小寫(只適用於單字符)。

使用這個之前我們使用sed工具對file文件進行轉換:sed工具以後會寫博文。

sed -i /he/s/he/HE/g file

表示我們把每一行的he都轉換成了HE

然後我們使用grep -i;

650) this.width=650;" src="http://s5.51cto.com/wyfs02/M02/83/3C/wKiom1dtAbvRKcM8AAAoHxYdb5k625.png" title="QQ圖片20160624174723.png" alt="wKiom1dtAbvRKcM8AAAoHxYdb5k625.png" />

-------------------------------------------------------------------------------------------


-h 查詢多文件時不顯示文件名。

650) this.width=650;" src="http://s5.51cto.com/wyfs02/M00/83/3B/wKioL1dtA9iQJRuqAAB7SkIefD8511.png" style="float:none;" title="QQ圖片20160624175232.png" alt="wKioL1dtA9iQJRuqAAB7SkIefD8511.png" />

-------------------------------------------------------------------------------------------


-n 顯示匹配行及行號。

650) this.width=650;" src="http://s5.51cto.com/wyfs02/M00/83/3C/wKiom1dtA9mBmze9AABxt1Ikr98553.png" style="float:none;" title="QQ圖片20160624175317.png" alt="wKiom1dtA9mBmze9AABxt1Ikr98553.png" />

-------------------------------------------------------------------------------------------


-s 不顯示不存在或無匹配文本的錯誤信息。

650) this.width=650;" src="http://s2.51cto.com/wyfs02/M00/83/3C/wKiom1dtA9nCU_diAAAk4vtyya8530.png" style="float:none;" title="QQ圖片20160624175415.png" alt="wKiom1dtA9nCU_diAAAk4vtyya8530.png" />

-------------------------------------------------------------------------------------------


-v 顯示不包含匹配文本的所有行。

650) this.width=650;" src="http://s2.51cto.com/wyfs02/M01/83/3B/wKioL1dtA9qD89StAACVXvAnKWA158.png" style="float:none;" title="QQ圖片20160624175521.png" alt="wKioL1dtA9qD89StAACVXvAnKWA158.png" />

-------------------------------------------------------------------------------------------

-l 查詢多文件時只輸出包含匹配字符的文件名。

650) this.width=650;" src="http://s1.51cto.com/wyfs02/M01/83/3B/wKioL1dtBEiTgQrpAAAkIbxuXXk979.png" title="QQ圖片20160624175819.png" alt="wKioL1dtBEiTgQrpAAAkIbxuXXk979.png" />


常用的就這些了=。=

本文出自 “剩蛋君” 博客,請務必保留此出處http://memory73.blog.51cto.com/10530560/1792687

發佈了101 篇原創文章 · 獲贊 9 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章