shell腳本之grep使用詳解

- Grep –help講解
- [options]主要參數:
-c:只輸出匹配行的計數。
-i:不區分大 小寫(只適用於單字符)。
-h:查詢多文件時不顯示文件名。
-l:查詢多文件時只輸出包含匹配字符的文件名。
-n:顯示匹配行及 行號。
-s:不顯示不存在或無匹配文本的錯誤信息。
-v:顯示不包含匹配文本的所有行。
- 正則表達式的基礎講解
pattern正則表達式主要參數:
\: 忽略正則表達式中特殊字符的原有含義。
^:匹配正則表達式的開始行。
$: 匹配正則表達式的結束行。
\<:從匹配正則表達 式的行開始。
>:到匹配正則表達式的行結束。
[ ]:單個字符,如[A]即A符合要求 。
[ - ]:範圍,如[A-Z],即A、B、C一直到Z都符合要求 。
.:所有的單個字符。
- :有字符,長度可以爲0
/(../) 標記匹配字符,如’/(love/)’,love被標記爲1。
/ 錨定單詞的開始,如:’/匹配包含以grep開頭的單詞的行。
x/{m,/} 重複字符x,至少m次,如:’o/{5,/}’匹配至少有5個o的行。
/w 匹配文字和數字字符,也就是[A-Za-z0-9],如:’G/w*p’匹配以G後跟零個或多個文字或數字字符,然後是p。
/b 單詞鎖定符,如: ‘/bgrep/b’只匹配grep
- 常使用方法
顯示tcpdump.log文件中所有包含seq的所有,包含seq和seq的都會展示出來

 grep “seq” tcpdump.log

顯示tcpdump.log文件中,所有不包含seq的所有列

grep -v “seq” tcpdump.log

顯示文件中,以seq開頭的所有列

  grep “^seq” tcpdump.log

不區分大小寫查詢,包括SeQ的所有列

  grep -i “Seq” tcpdump.log

顯示tcpdump1.log和tcpdump.log兩個文件中,包括seq的所有列

grep “seq” tcpdump.log tcpdump1.log

統計包含seq列的行數

Grep -c “seq” tcpdump.log

多文檔查詢,只顯示包括”seq”的文檔名稱

    Grep -l “seq” tcpdump.log tcpdump1.log

顯示所有d開頭的文件中,包含seq的列

    Grep “seq” d*

查看文件中包含五個連續都是字符的的列

    Grep[a-z]\{5\}tcpdump.log
  • 正則表達式應用,列中查找,完全匹配,前匹配和後匹配
    會匹配‘Batman’、’manic’、’man’等
grep man tcpdump.log

匹配’manic’和’man’,但不是’Batman’

grep ‘\<man’ tcpdump.log

匹配cman ,man,不匹配mans

grep “man\>” tcpdump.log

只匹配’man’,而不是’Batman’或’manic’等其他的字符串

grep ‘\<man\>’ tcpdump.log
發佈了65 篇原創文章 · 獲贊 29 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章