對於使用linux系統的管理員來說,系統給我們返回的資訊有時候真的是太多了,然而我們往往想要得到的資訊僅僅是一部分,所以我們就需要一些編輯工具來對輸出的資料流進行過濾。
對grep的介紹以及使用主要從下面幾個方向進行:
1.什麼是grep?那麼就讓我們開始學習grep吧2.為什麼使用grep?
4.如何使用grep?
首先,需要知道 grep 的全稱是 global regular expression print,全域性正規表示式匹配列印。
在linux 系統下,grep 可以算是一種文字的搜尋工具,能夠使用正規表示式來進行匹配文字,並將匹配到的行進行列印。
那麼什麼是正規表示式尼?
簡單點的理解,正規表示式就是一種使用匹配字串的公用規則所寫成的表示式。
使用 grep 的目的就是能夠通過使用它能找到我們想要的資訊。當然值得一提的就是 grep其實僅僅 grep 家族中的乙個工具,還有類似於egrep,fgrep,zgrep,zegrep,zfgrep 這些工具。
說了那麼多的介紹,現在就讓我們開始學習吧!
首先,使用 grep 命令的格式如下:
grep [選項] "模式" [檔案]
所以我們乙個逐個分析:
-e:讓 grep 能夠匹配到擴充套件(extend)的正規表示式。
-i :匹配的時候忽略大小寫(ignore case)。
-v:列印不匹配的,而匹配的不列印(invert)。
-n:匹配結果列印的時候顯示行號。
-w:被匹配的文字只能是單詞,而不能是單詞中的某一部分。
-c:顯示總共有有多少行被匹配到了,而不是顯示被匹配到內容。
-o:只顯示被模式匹配到的字串。
–color:將匹配到的內容以顏色高亮顯示。
-a #:顯示匹配到的字串所在的行以及其後 # 行(after)。
-b #:顯示匹配到的字串所在的行以及前 # 行(before)。
-c #:顯示匹配到的字串所在的行以及前後各 # 行。(contextt)
直接輸入要匹配的字串,推薦這樣情況下使用 fgrep(fast grep)
a)匹配字元
. :任意的乙個字元
[abc] :匹配乙個字元,僅匹配在中括號內的字元
[abc]:匹配乙個字元,除了脫字元()後面的字元
[0-9] :匹配數字0到9的任意乙個字元
系統定義了一些常用的字符集
[[:alpha:]] :匹配任意乙個英文本母,<==>[a-za-z]
[[:digit:]] :匹配任意乙個數字,<==> [0-9]
[[:alnum:]] :匹配任意乙個英文本母和數字0-9,<==>[a-za-z0-9]
[[:space:]] :匹配任意乙個空白字元,例如:空格,tab等
[[:upper:]]:匹配任意乙個大寫的英文本母,<==>[a-z]
[[:lower:]]:匹配任意乙個小些的英文本母,<==>[a-z]
[[:punct:]]:匹陪任意乙個標點符號
如果想要匹配的就是具有特殊意義的字元,例如:』 . 『,』 * 『,』 [ '等字元,就要對其使用反斜槓進行轉義,*就表示匹配*
b)匹配次數
:匹配前面出現的字元至少 m 次,至多n次
?:匹配其前面出現的內容0次或1次 等同於
* :匹配其前面出現的內容任意次,等同於,因此.* 代表的就是任意字元任意多次
c)位置錨定
^:錨定行首
katex parse error: expected group after '^' at position 9: :錨定行尾,所以^̲用於匹配空白行
<:錨定單詞的詞首
>:錨定單詞的詞尾
\b:錨定單詞,可以是詞首也可是詞尾,例如:\bword\b就僅僅會匹配到word這個單詞
d)分組及引用
(string):將string作為乙個整體,可以後向引用
\1:引用第乙個左括號及其對應的右括號匹配的內容
\2:引用第二個左括號及其對應的右括號匹配的內容,以此類推。
a):分組及引用
(string):和基本的正規表示式(string)是相同的,引用部分與基本正規表示式相同。
b):選擇
statement1|statement2:匹配statement1或者statement2,匹配的是或者號( | )兩邊的全部,例如:c|cat,表示匹配的要麼是c要麼是cat。
其他的詳細的正規表示式學習,我們在這裡就不一一闡述了
至此,grep 的一些常用的使用,我們都已經說完了,其實有這麼多,還是需要多加練習,將這些融入其中才會完全掌握,當然自己也可以給自己出一些問題然後自己來解決,這樣就會有很快的進步,總之,望君堅持✊。
Linux之文字處理
在linux系統中,即使在控制台命令列狀態下,也需要進行大量的文字處理工作。linux系統中幾乎所有的配置檔案都是以純文字形式存在的,我們也要對這些檔案進行編輯工作。linux上常見的文字編輯器有vi vim ed gedit emacs等。本章介紹的文字編輯器就是平常使用最多的vim文字處理器。v...
linux shell程式設計文字處理命令grep
linux中最為常用的三大文字 awk,sed,grep 處理工具之一,grep可以理解為過濾,通用的正規表示式分析程式,grep家族總共有三個 grep egrep fgrep。使用基本正規表示式 模式 正規表示式 用來表達某個意思 利用正確的規則組合成乙個公式,用來表達某個意思。正規表示式 是一...
linux 文字處理
1.文字處理 echo echo e 033 40 35m.背景顏色範圍 40 49 40 黑 41 深紅 42 綠 43 黃色 44 藍色 45 紫色 46 深綠 47 百色 字型顏色範圍 30 39 30 黑 31 紅 32 綠 33 黃 34 藍色 35 紫色 36 深綠 37 百色 eg e...