先來講講grep(搜尋過濾)
1.命令格式:
grep [option] pattern file
2.命令引數:
-a 不要忽略二進位制的資料
-a《顯示行數》 除了顯示符合範本樣式的那一行之外,並顯示該行之後的內容 grep -a 5 可以顯示匹配內容以及後面的5行內容
-b 在顯示符合樣式的那一行之前,標示出該行第乙個字元的編號
-b 顯示行數 除了顯示符合樣式的那一行之外,並顯示該行之前的內容 grep -b 5 可以顯示匹配內容以及前面的5行內容
-c 計算符合樣式的行數
-c《顯示行數》 除了顯示符合樣式的那一行之外,並顯示該行之前後的內容 grep -c 5 可以顯示匹配內容以及前後面的5行內容
-d 《動作》 當指定要查詢的是目錄而非檔案時,必須使用這項引數,否則grep指令將回報資訊並停止動作
-e《範本樣式》 指定字串做為查詢檔案內容的樣式
-e 將樣式為延伸的普通表示法來使用。
-f《規則檔案》 指定規則檔案,其內容含有乙個或多個規則樣式,讓grep查詢符合規則條件的檔案內容,格式為每行乙個規則樣式
-f #將樣式視為固定字串的列表
-g 將樣式視為普通的表示法來使用
-h #在顯示符合樣式的那一行之前,不標示該行所屬的檔名稱。
-h #在顯示符合樣式的那一行之前,表示該行所屬的檔名稱。
-i #忽略字元大小寫的差別。
-l #列出檔案內容符合指定的樣式的檔名稱。
-l #列出檔案內容不符合指定的樣式的檔名稱。
-n #在顯示符合樣式的那一行之前,標示出該行的行數編號。
-q #不顯示任何資訊。
-r #此引數的效果和指定「-d recurse」引數相同。
-s #不顯示錯誤資訊。
-v #顯示不包含匹配文字的所有行。
-v #顯示版本資訊。
-w #只顯示全字符合的列。
-x #只顯示全列符合的列。
-y #此引數的效果和指定「-i」引數相同
3.grep的正規表示式:
^ #錨定行的開始
$ #錨定行的結束
. #匹配乙個非換行符的字元
* #匹配零個或多個先前字元
.* #一起用代表任意字元
#匹配乙個指定範圍內的字元
[^] #匹配乙個不在指定範圍內的字元
\(..\) #標記匹配字元
\< #錨定單詞的開始
\> #錨定單詞的結束
x\ #重複字元x,m次
x\ #重複字元x,至少m次
x\ #重複字元x,至少m次,不多於n次
\w #匹配字母和數字字元
\w #\w的反置形式,匹配乙個或多個非單詞字元
\b #單詞鎖定符
[:alnum:] #文字數字字元
[:alpha:] #文字字元
[:digit:] #數字字元
[:graph:] #非空字元(非空格、控制字元)
[:lower:] #小寫字元
[:cntrl:] #控制字元
[:print:] #非空字元(包括空格)
[:punct:] #標點符號
[:space:] #所有空白字元(新行,空格,製表符)
[:upper:] #大寫字元
[:xdigit:] #十六進製制數字(0-9,a-f,a-f)
4. 擴充套件正規表示式 egrep 是 grep -e 的別名
+, 於 . * 作用類似,表示 乙個或多個重複字元。
?, 於 . * 作用類似,表示0個或乙個字元。
|,表示或關係,比如 'gd|good|dog' 表示有gd,good或dog的串
(),將部分內容合成乙個單元組。 比如 要搜尋 glad 或 good 可以這樣 'g(la|oo)d'
eg:查詢指定程序: ps -ef|grep svn
查詢指定程序個數: ps -ef|grep svn -c
搜尋有the的行,並輸出行號 grep -n 'the' regular_express.txt
grep不顯示本身程序: ps aux|grep ssh ps aux | grep ssh | grep -v "grep"
找出已u開頭的行內容: cat test.txt | grep ^u
輸出非u開頭的行內容: cat test.txt |grep ^[^u]
顯示包含ed或者at字元的內容行: cat test.txt |grep -e "ed|at"
日誌檔案過大,不好檢視,我們要從中檢視自己想要的內容,或者得到同一類資料,比如說沒有404日誌資訊的:grep '.' access1.log | grep -ev '404' > access2.log
grep '.' access1.log|grep -ev '404' > access2.log
grep '.' access1.log|grep -ev '(404|/photo/|/css/)' > access2.log
grep '.' access1.log|grep -e '404' > access2.log
上面3句命令前面兩句是在當前目錄下對access1.log檔案進行查詢,找到那些不包含404的行,把它們放到access2.log中,後面去掉』v』,即是把有404的行放入access2.log
awk 匹配數字不能用\d
Grep學習筆記
1.grep簡介 grep的工作方式是這樣的,它在乙個或多個檔案中搜尋字串模板。如果模板包括空格,則必須被引用,模板後的所有字串被看作檔名。搜尋的結果被送到螢幕,不影響原檔案內容。grep可用於shell指令碼,因為grep通過返回乙個狀態值來說明搜尋的狀態,如果模板搜尋成功,則返回0,如果搜尋不成...
Grep學習筆記
1.grep正規表示式元字符集 基本集 錨定行的開始 如 grep 匹配所有以grep開頭的行。錨定行的結束 如 grep 匹配所有以grep結尾的行。匹配乙個非換行符的字元 如 gr.p 匹配gr後接乙個任意字元,然後是p。匹配零個或多個先前字元 如 grep 匹配所有乙個或多個空格後緊跟grep...
Grep學習筆記
table of contents 1.grep簡介 2.grep正規表示式元字符集 基本集 3.用於egrep和 grep e的元字元擴充套件集 4.posix字元類 5.grep命令選項 6.例項 grep的工作方式是這樣的,它在乙個或多個檔案中搜尋字串模板。如果模板包括空格,則必須被引用,模板...