grep命令是linux系統中一種強大的文字搜尋工具,它能使用正規表示式搜尋文字,並把匹 配的行列印出來。grep全稱global regular expr
ession print,表示全域性正規表示式版本,它的使用許可權是所有使用者。grep可用於shell指令碼,因為grep通過返回乙個狀態值來說明搜尋的狀態,如果模板搜尋成功,則返回0,如果搜尋不成功,則返回1,如果搜尋的檔案不存在,則返回2。
-a :將 binary 檔案以 text 檔案的方式搜尋資料
-c :計算找到 '匹配字串' 的次數
-i :忽略大小寫的不同,所以大小寫視為相同
-n :順便輸出行號
-v :反向選擇,亦即顯示出沒有 '搜尋字串' 內容的那一行!
比如test.txt檔案內容如下:
1000 20 nan
1001 21 nv
1002 23 nan
//忽略大小寫進行匹配並顯示行號
grep -ni 'nan' test.txt
1:1000 20 nan
3:1002 23 nan
//忽略大小寫進行」非「匹配 並顯示行號
grep -ni 'nan' test.txt
2:1001 21 nv
re含義
^word
待匹配的字串(word)在行首!
如:grep '^1000' test.txt
返回:1000 20 nan
word$
待匹配的字串(word)在行末!
如:grep 'nv$' test.txt
返回:1001 21 nv
.
代表任意乙個字元,一定是乙個任意字元!
搜尋的字串可以是 (eve) (eae) (eee) (e e), 但不能僅有(ee) !亦 即e 與e 中間一定僅有乙個字元,而空格符也是字元!
如:grep 'n.n' test.txt
返回:1000 20 nan
\
轉義字元,特殊字元如 '
如:grep -n \' test.txt
匹配含有單引號' 的那一行!
*
重複零個或多個的前乙個re 字元,注意*號前面一定要有字元
如:grep 'n*' test.txt
返回:1000 20 nan
1001 21 nv
1002 23 nan
\
連續n 到m 個的前乙個re 字元
若為\ 則是連續n 個的前乙個re 字元,
若是\ 則是連續n 個以上的前乙個re 字元!
[ ]
字元集合的re 特殊字元的符號
[abc]:表示匹配a或者b或者c
[a-z]:表示匹配a,b,c,...z這26個字母中任何乙個
[^a-z]:表示字串的開頭只要不是小寫字母a-z,則都能匹配成功
[a-z$]:表示字串的結尾只要是小寫字母a-z,則都能匹配成功
擴充套件的正規表示式:egrep 'pattern' file.txt 或者用 grep -e 'pattern' file.txt
re含義
+
重複『乙個或乙個以上』的前乙個re 字元
如:egrep -n 'go+d' regular_express.txt
則:(god) (good) (goood)等會匹配成功
?
『零個或乙個』的前乙個re 字元
如:egrep -n 'go?d' regular_express.txt
則:(gd) (god)等會匹配成功
|
用或( or )的方式找出數個字串
如:egrep -n 'gd|good' regular_express.txt
則:匹配gd 或good 這兩個字串
()
找出『群組』字串
如:egrep -n 'g(la|oo)d' regular_express.txt
則:匹配(glad) 或(good) 這兩個字串
grep 常用引數
grep的基本使用方式 grep file grep 1 2 file cat file grep pip grep 測試文字111 cat 111 abcabc abcabc123 123不加任何引數 grep abc 111 abcabc123忽略大小寫 grep i abc 111 abcab...
grep命令引數詳解
1.grep命令引數選項 同時顯示匹配行上下?行,如grep 2 pattern filename,a 同時顯示匹配行下?行grep a 10 pattern filename b 同時顯示匹配行上?行 c 列印匹配次數 e 擴充套件正則egrep f 兩個檔案相同行 如,grep f file1 ...
Grep 命令 用法大全
1 引數 i 忽略大小寫 c 列印匹配的行數 l 從多個 檔案中查詢包含匹配項 v 查詢不包含匹配項的行 n 列印包含匹配項的行和行標 2 re 正規表示式 忽略正規表示式中特殊字元的原有含義 匹配正規表示式的開始行 匹配正規表示式的結束行 從匹配正規表示式的行開始 到匹配正規表示式的行結束 單個字...