Linux 文字處理三兄弟之 Grep

2021-08-28 15:55:03 字數 2463 閱讀 9354

對於使用linux系統的管理員來說,系統給我們返回的資訊有時候真的是太多了,然而我們往往想要得到的資訊僅僅是一部分,所以我們就需要一些編輯工具來對輸出的資料流進行過濾。

對grep的介紹以及使用主要從下面幾個方向進行:

1.什麼是grep?

2.為什麼使用grep?

4.如何使用grep?

那麼就讓我們開始學習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...