L26 grep和egrep工具的使用

2021-08-09 22:40:29 字數 3006 閱讀 8667

正規表示式是這樣解釋的:它是指乙個用來描述或者匹配一系列符合某個句法規則的字串的單個字串。在很多文字編輯器或其他工具裡,正規表示式通常被用來檢索和/或替換那些符合某個模式的文字內容。許多程式語言都支援利用正規表示式進行字串操作。對於系統管理員來講,正規表示式貫穿在我們的日常運維工作中,無論是查詢某個文件,抑或查詢某個日誌檔案分析其內容,都會用到正規表示式。

grep / egrep(globally search a regular expression and print)

語法: grep  [-cinvabc]  'word'  filename

-c :列印符合要求的行數

-i :忽略大小寫

-n :在輸出符合要求的行的同時連同行號一起輸出

-v :列印不符合要求的行

-r:遍歷所有行

-a :後跟乙個數字(有無空格都可以),例如 –a2則表示列印符合要求的行以及下面兩行

-b :後跟乙個數字,例如 –b2 則表示列印符合要求的行以及上面兩行

-c :後跟乙個數字,例如 –c2 則表示列印符合要求的行以及上下各兩行

例如:

[root@greg-01 ~/grep]# grep -n 'root' /etc/passwd

1:root:x:0:0:root:/root:/bin/bash

10:operator:x:11:0:operator:/root:/sbin/nologin 2.

[root@greg-01 ~/grep]# grep -nv 'nologin' /etc/passwd

1:root:x:0:0:root:/root:/bin/bash

6:sync:x:5:0:sync:/sbin:/bin/sync

7:shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

8:halt:x:7:0:halt:/sbin:/sbin/halt

21:greg:x:1000:1006::/home/greg:/bin/bash

22:greg2:x:1001:1008::/home/greg2:/bin/bash

3.過濾出所有包含數字的行

grep '[0-9]' /etc/inittab 4.

過濾出所有不包含數字的行

grep -v '[0-9]' /etc/inittab
5.把所有以 '#' 開頭的行去除

grep -v '^#' /etc/inittab
6.

去除所有空行和以 '#' 開頭的行

grep -v '^#' /etc/crontab |grep -v '^$'
在正規表示式中, "^" 表示行的開始, "$" 表示行的結尾,那麼空行則可以用 "^$" 表示

例如:列印出不以英文本母開頭的行。

'[ ]' 的應用,如果是數字的話就用[0-9]這樣的形式,當然有時候也可以用這樣的形式[15]即只含有1或者5,注意,它不會認為是15。如果要過濾出數字以及大小寫字母則要這樣寫[0-9a-za-z]。另外[ ]還有一種形式,就是[^字元] 表示除[ ]內的字元之外的字元。 7.

過濾任意乙個字元與重複字元

. 表示任意乙個字元,上例中,就是把符合r與o之間有兩個任意字元的行過濾出來, * 表示零個或多個前面的字元。

'ooo*' 表示oo, ooo, oooo ... 或者更多的 'o'

'.*' 表示零個或多個任意字元,空行也包含在內。 8.

指定要過濾字元出現的次數

,其內部為數字,表示前面的字元要重複的次數。上例中表示包含有兩個o 即 'oo' 的行。注意,左右都需要加上脫義字元 '\', 另外,使用我們還可以表示乙個範圍的,具體格式是 '' 其中n1

egrep用法

1 篩選乙個或乙個以上字元egrep 'o+' passwd

篩選兩個字元egrep 'o' passwd

2.篩選零個或乙個前面的字元egrep 'o?' passwd

3.篩選字串1或者字串2

4.egrep中( )的應用

用( )表示乙個整體,把包含rooo或者rato的行過濾出來

例如(oo)+就表示1個 'oo' 或者多個 'oo'

Linux下正規表示式 和 grep命令的使用

使用規則表示式要養成良好的習慣,就是在匹配模式的兩端加上 這樣和shell的檔案萬用字元號做區別。正規表示法 regular exdivssion,re 1 什麼是正規表示法 什麼是正規表示式 regular exdivssion,底下簡稱 re 呢?簡單的說,在 linux 的環境下,我們可以透過...

Linux下正規表示式和grep命令的使用

使用規則表示式要養成良好的習慣,就是在匹配模式的兩端加上 這樣和shell的檔案萬用字元號做區別。正規表示法 regular exdivssion,re 1 什麼是正規表示法 什麼是正規表示式 regular exdivssion,底下簡稱 re 呢?簡單的說,在 linux 的環境下,我們可以透過...

版本控制工具 Git和GitHub的簡單使用

1.版本控制工具的種類 2.git 簡介 2.1 git 的產生源於linux,因此 git 的命令和 linux 全面相容,git 是用c語言開發的 開源的,git 很快是因為 c 語言通過減少執行的開銷來實現的。2.2 git 提供了協同修改 資料備份 版本管理 許可權控制 分支管理等。2.3 ...