什麼是正則表達式:
正則表達式就是處理字符串的方法,他是以行爲單位來進行字符串的處理行爲,正則表達式通過一些特殊符號的輔助,可以讓用戶輕易達到查找,刪除,替換某種特定字符串的處理程序,其實就像相當與添加位置限定符,數量限定符,字符想定符來進行範圍縮減匹配。
2.grep工具:
首先grep就是一個查找工具,然後通過正則表達式完成字符串的搜索。
存在3種限定符:
首先是字符限定符:
數量限定符:
位置限定符:
其他限定符:
是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:只輸出匹配行的計數。
-------------------------------------------------------------------------------------------
-i:不區分大小寫(只適用於單字符)。
使用這個之前我們使用sed工具對file文件進行轉換:sed工具以後會寫博文。
sed -i /he/s/he/HE/g file
表示我們把每一行的he都轉換成了HE
然後我們使用grep -i;
-------------------------------------------------------------------------------------------
-h 查詢多文件時不顯示文件名。
-------------------------------------------------------------------------------------------
-n 顯示匹配行及行號。
-------------------------------------------------------------------------------------------
-s 不顯示不存在或無匹配文本的錯誤信息。
-------------------------------------------------------------------------------------------
-v 顯示不包含匹配文本的所有行。
-------------------------------------------------------------------------------------------
-l 查詢多文件時只輸出包含匹配字符的文件名。
常用的就這些了=。=
本文出自 “剩蛋君” 博客,請務必保留此出處http://memory73.blog.51cto.com/10530560/1792687