grep 『c*』 /etc/passwd
grep 『c\+』 /etc/passwd
egrep 『c+』 /etc/passwd
在vim下面用 :%s/***/aaa/ 可將所有字串***替換為aaa
/^$/找的是空行,包括回車
最好用egrep而且搜尋的正規表示式要加雙引號或單引號,最好是雙引號
基本正規表示式原字元
元字元功能示例說明^
行首定位符
^love
以l開頭且後面跟ove的行
$行尾定位符
love$
.匹配單個字元
l…e匹配l和e之間有兩個任意字元的字串
*匹配前導符0到多次
ab*love
匹配如alove,ablove,abbbbblove
.*任意多個字元
匹配指定範圍內的乙個字元
[ll]ove
匹配love或love
[ - ]
匹配指定範圍內的乙個字元
[a-z0-9]ove
小寫a-z和0-9中任意乙個在加ove
[^]匹配不在指定組內的字元
[^a-z0-9]ove
\用來轉義元字元
love\.
這裡把.轉義為了原始的標點符號
\<
詞首定位符
\\>
詞尾定位符
love\>
\(..\)
匹配稍後使用的字元的標籤
:% s/172.16.130.1/172.16.130.5/
可簡化為
:% s/\(172.16.130.\)
1/\1
5/
也可寫成:
% s/\(172.\)\(16.\)\(130.\)1/\1\2\35/
將文字內容172.16.130.1轉化為172.16.130.5 第二個的\1相當於第乙個括號裡的內容
x\字元x重複出現m次
o\x\
字元x重複出現m次以上
o\x\
字元x重複出現m到n次
o\擴充套件正規表示式元字元這裡應該是一定要用egrep的
元字元功能
示例說明
+匹配乙個或多個前導字元
[a+z]+ove
a-z中至少匹配乙個
?匹配乙個或0個前導字元
lo?
ve
a|b匹配a或b
love|hate
()組字元
love(able|rs)ov+ ov+ (ov)+
ov+是v重複乙個或多個(ov)+是重複ov乙個或多個ovovovo…
(..)(..)\1\2
標籤匹配字元
(love)able\1er
\1相當於love
x字元x重複m次ox
字元x重複至少m次ox
字元x重複m到n次
oposix字元類
元字元功能示例
說明[:alnum:]
字母與數字字元
[[:alnum]]+
例項是匹配乙個或多個字母或數字的
[:alpha:]
字母字元(包括大小寫字母)
[[:alpha] ]
[:blank:]
空格與製表符
[[:blank:]]
[:digit:]
數字字母
[[:digit:]]?
[:lower:]
小寫字母
[[:lower:]]
[:upper:]
大寫字母
[[:upper:]]+
[:punct:]
標點符號
[[:punct:]]
[:space:]
包括換行符,回車等在內的所有空白
[[:space:]]+
/love/
/^love/
/love$/
/l.ve/
/lo*ve/
/[ll]ove/
/love[a-z]
/love[^a-za-z0-9]/
/.*
//^$/
/^[a-z]
..$/
/^[a-z]
[a-z]
*3[0-5]//
[a-z]
*\./
/^ *
[a-z]
[a-z]
[a-z]$/注意這是匹配開頭有或者沒有空格的
/^[a-za-z]
*[^,
][a-za-z]
*$//\/
/\.*th\>/
/52\./空行
/^$/
/^[\t]
*$/注釋行
/^#/
/^[\t]
*#/
grep
egrep
fgrep
grep選項 選項
完整選項
意義例子
-i- -ignore-case
忽略大小寫
-l- -files-with-matches
只列出匹配行所在的檔名
-n- -line-number
在每一行前面加上它在檔案中的相對行號
-c- -count
顯示成功匹配的行數
-s–no-message
禁止顯示檔案不存在或者檔案不可讀的錯誤資訊
-q- -quiet,- -silent
靜默,會列印出命令返回值
-v- -invert-match
反向查詢,只顯示不匹配的行
-r,-r
- -recursive
遞迴查詢針對目錄
grep -r 『aa』 /file 目錄
egrep 『aa』 /file/*遞迴查詢檔案
- -color
顏色-o
- -only-matching
只顯示匹配的內容(預設情況也就是選項為空的情況是顯示匹配的行的所有內容的)
-b- -before-context=num
print num lines of leading context
-b2顯示所在行前面兩行
-a- -after-context=num
print num lines of trailing context
-a2顯示所在行後面兩行
-c- -context=num
print num lines of output context
-c2 顯示所在行前後兩行
命令格式
grep [選項] pattern filename1 filename2。。其中pattern 表示正規表示式的模式(就是正規表示式)filename是要對pattern 進行查詢的檔案
可用man grep檢視使用文件或者grep help
grep -e相當於egrep
grep '-v』這樣的話系統會把-v看成是選項而不是模式應該這樣grep 『-v』
ps:元字元作用或等價於
\w(word)所有字母與數字,相當於字元[a-za-z0-9]
『l[a-za-z0-9]*ve』 等價於 『\w*ve』
\w所有字母與數字之外的字元,稱為非字元
'love[^a-za-z0-9]+『等價於』love\w+』
\b詞邊界
『『等價於』\blove\b』
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...