正規表示式 (grep)
grep (global search regular expression(re) and print out the line,全面搜尋正規表示式並把行列印出來)是一種強大的文字搜尋工具,它能使用正規表示式搜尋文字,並把匹配的行列印出來。
一:語法
grep -aceinv 『字串' filename
引數說明:
-a當對binary檔案搜尋時使用
-c
計算次數
-e
兩個表示式連到一起
-i
忽略大小寫的不同
-n
輸出行號
-v
反向選擇
字串^word
搜尋行首為
(word)的行
word$
搜尋行尾為
(word)的行
.
代表任意乙個字元,一定是乙個任意字元
\
將特殊符號的特殊意義去除
*
重複零個或多個的前乙個
re 字元
[ ] 代表乙個待搜尋的字元
[ - ] 中的減號 -代表兩個字元之間的所有連續字元
[^abc ] 代表不包括abc 如grep -n [^a-z]不搜尋大寫
\ 連續n 到m
個的(前乙個re 字元)
\ 連續 n 個的前乙個 re 字元
\ 連續 n 個以上的前乙個 re 字元
\(..\)
乙個字元單位,如
'\(love\)'
,love
被標記為1。
egrep
是grep –e
+
重複零個或多個的前乙個
re 字元
?
零個或乙個前乙個
re 字元
|
用或( or )
的方式找出數個字串
( )乙個字元單位
三:常用正規表示式
1.常用的正規表示式
[\u4e00-\u9fa5] //匹配中文字元
[^\x00-\xff] //匹配雙位元組字元(包括漢字在內)
\n\s*\r //匹配空白行的正規表示式
^\s*|\s*$ //匹配首尾空白字元
[a-za-z]+://[^\s]* //匹配**url
^[a-za-z][a-za-z0-9_]$ //匹配帳號是否合法(字母開頭,允許5-16位元組,允許字母數字下劃線)
\d-\d|\d-\d //匹配國內**號碼
\d|\d //匹配身份證
\d+\.\d+\.\d+\.\d+ //匹配ip位址
]*>.*?|<.> //匹配html標記的正規表示式
\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* //匹配email位址
2.
匹配特定數字
^[1-9]\d*$ //匹配正整數
^-[1-9]\d*$ //匹配負整數
^-?[1-9]\d*$ //匹配整數
^[1-9]\d*|0$ //匹配非負整數(正整數 + 0)
^-[1-9]\d*|0$ //匹配非正整數(負整數 + 0)
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ //匹配正浮點數
^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ //匹配負浮點數
^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ //匹配浮點數
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$ //匹配非負浮點數+ 0
^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$//匹配非正浮點數+0
3.
匹配特定字串
^[a-za-z]+$//匹配由26個英文本母組成的字串
^[a-z]+$ //匹配由26個英文本母的大寫組成的字串
^[a-z]+$ //匹配由26個英文本母的小寫組成的字串
^[a-za-z0-9]+$//匹配由數字和26個英文本母組成的字串
^\w+$
//匹配由數字、
26個英文本母或者下劃線組成的字串
grep正規表示式
grep的工作方式是這樣的,它在乙個或多個檔案中搜尋字串模板。如果模板包括空格,則必須被引用,模板後的所有字串被看作檔名。搜尋的結果被送到螢幕,不影響原檔案內容。grep可用於shell指令碼,因為grep通過返回乙個狀態值來說明搜尋的狀態,如果模板搜尋成功,則返回0,如果搜尋不成功,則返回1,如果...
Grep正規表示式
grep正規表示式 要用好grep這個工具,其實就是要寫好正規表示式,所以這裡不對grep的所有功能進行例項講解,只列幾個例子,講解乙個正規表示式的寫法。ls l grep a 通過管道過濾ls l輸出的內容,只顯示以a開頭的行。grep test d 顯示所有以d開頭的檔案中包含test的行。gr...
grep正規表示式
文字查詢需要grep global research 根據模式,搜尋文字,並將符合模式的文字行顯示出來。pattern 文字字元和正規表示式的元字元組合而成的匹配條件 man grep 檢視幫助 查詢 etc passwd檔案包含root的內容 root iz233y80y23z grep root...